您可以通过将两个配置文件添加到您的POM来实现默认启用source-jar插件的实际目标。该Maven profiles documentation指出,可以在一个元素<activeByDefault>true</activeByDefault>
添加到activation
部分,并指出
,除非在同一POM另一种规范使用先前描述的方法之一激活此配置文件将自动生效所有构建
所以,你可以添加两个配置文件,其中之一是activeByDefault
,其中包括相关的插件,另外,它可以在任何的标准方式(如-P
从命令行)被激活,以阻止默认配置文件从运行。因此,在您的pom.xml
(或Maven设置或其他)的profiles
部分可能是这样的:
<profile>
<id>source-jars</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
...
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- active this profile to disable the source-jars plugin -->
<id>no-optional-plugins</id>
</profile>
不幸的是,我看不到一个方法,使这种方法来控制多个插件很好地扩展 - 我认为你需要O(n^2)
配置文件n
插件,但对于这种简单的情况下,它应该很好。
与Maven≥2.0.10另一种可以简单的选择是只从上面(仍activeByDefault
)的source-jars
轮廓,并manually deactivate the profile当你想通过之后-P
CLI标志与前缀或-
的!
配置文件ID:
$ mvn -P !source-jars
该方法并不具有多个插件相同的O(n^2)
问题,但它也不太灵活,因为停用不能由系统属性,环境变量,JDK版本等触发。
我们的poms是在默认运行maven-source-plugin的地方编写的,所以我必须按照您的建议重新构建它们。 – 2011-01-14 16:33:30
在很多情况下,插件可以默认启用并且使用配置文件禁用。我认为这个答案避免了解决这个问题。 – Kevin 2014-02-10 02:25:56