您可以通過將兩個配置文件添加到您的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