我有一个 Maven 模块,有 2 个配置文件 profile-a 和 profile-b
profile-a 可以独立使用,但 profile-b 应与 profile-a 一起运行
mvn install -P profile-a // valid
mvn install -P profile-a,profile-b // valid
mvn install -P profile-b // INVALID
是否有办法确保用户无法仅使用配置文件-b 安装模块? 或者如果单独使用 profile-b,则自动激活 profile-a?
最佳答案
is there anyway to make sure that user cannot install the module with only profile-b? or active the profile-a automatically if profile-b used alone?
不,无法从另一个配置文件触发配置文件(不支持,请参阅相关问题的 Brett's answer),也无法严格禁止使用给定的配置文件。
您能做的最好的事情就是使用属性激活和通用属性来激活两个配置文件:
<project>
...
</dependencies>
<profiles>
<profile>
<id>profile-a</id>
<activation>
<property>
<name>propertyX</name>
</property>
</activation>
</profile>
<profile>
<id>profile-b</id>
<activation>
<property>
<name>propertyX</name>
</property>
</activation>
</profile>
</profiles>
</project>
调用 mvn 时传递属性会同时触发它们:
$ mvn help:active-profiles -DpropertyX [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Q4099626 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-help-plugin:2.1.1:active-profiles (default-cli) @ Q4099626 --- [INFO] Active Profiles for Project 'com.stackoverflow:Q4099626:jar:1.0-SNAPSHOT': The following profiles are active: - profile-a (source: pom) - profile-b (source: pom)
这并不理想,但目前,这是您可以获得的最好结果。
相关问题
关于maven-2 - Maven配置文件依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4099626/