我在我的pom.xml中有一个配置文件,除非明确停用(-P!firstProfile),否则它应始终处于活动状态.我通过使用activeByDefault标志解决了这个问题:
<profiles>
<profile>
<id>firstProfile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
...
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
现在在同一个pom.xml中我定义了第二个配置文件,只有在配置文件被激活时才会激活(-P secondProfile).因此默认行为是:firstProfile active,secondProfile inactive.在其他一些方面,除了第一个配置文件之外,我还想激活第二个配置文件.现在的问题是,如果我用"-P secondProfile"执行此操作,则不幸的是,第一个配置文件将被停用.Maven文档说明了这一点:
...除非使用前面描述的方法之一激活同一POM中的另一个配置文件,否则此配置文件将自动为所有版本激活.当在命令行上激活POM中的配置文件或通过其激活配置时,默认情况下处于活动状态的所有配置文件都将自动停用....
是否有可能如何保持firstProfile始终处于活动状态(无需在settings.xml中声明它)?
我们有一个Maven 2项目,里面有很多模块.例:
<modules>
<module>common</module>
<module>foo</module>
<module>data</module>
<module>bar</module>
... more ...
</module>
Run Code Online (Sandbox Code Playgroud)
假设构建"数据"模块非常耗时,我们希望在CI服务器构建项目时将其排除.目前我们使用两个pom.xml文件来实现这一目标.一个包含所有模块,另一个包含所有模块,除了可以省略CI的模块.但这很烦人,因为有时我们会忘记将新模块放入两个文件中.
有没有一个解决方案不需要两个单独的模块列表?
可能重复:
如何使用命令行从maven构建中排除某些模块
我正在maven clean install一个pom文件中运行一个包含几个模块(和子模块)的文件.我想知道是否可以运行maven构建但是在命令行上指定从构建中跳过一个模块(目前我从构建中手动排除它们,但我更喜欢通过命令行来完成它).
我知道使用-pl你可以有选择地选择项目,但我想要的是有选择地排除(以黑名单方式)一些.
我有一个像这样的 Maven 多模块项目:
foo-parent
foo-module
foo-module-new
foo-other-module1
foo-other-module2
pom.xml
Run Code Online (Sandbox Code Playgroud)
当调用mvn javadoc:aggregatefoo-parent 时,我想从 Javadoc 生成中排除模块foo-module。
excludePackageNames在我的情况下,通过带参数的包名排除不起作用,因为 foo-module 和 foo-module-new 具有相同的包名。