簡體   English   中英

Maven:僅當存在命令行標志時才執行插件

[英]Maven: Only execute plugin when a command line flag is present

我希望Maven僅在調用mvn命令時在命令行上有標志時才運行某個插件。

例如:

假設我有一個名為maven-foo-plugin 我只希望當調用maven命令時出現--foo標志時,maven才能運行此插件。

所以,不用說...

mvn install

...我會說...

mvn install --foo

第一個不應該使用/調用插件maven-foo-plugin ,但是第二個應該。 默認情況下,我不希望此插件運行,但是當且僅當--foo存在。 我是否要在此maven-foo-plugin添加另一個參數以使其執行此操作?

我使用的插件是maven-antrun-plugin ,其任務是將文件解壓縮。 當然,有時此文件存在,有時不存在。 有時,它不存在,我不需要它。 因此,我需要一種方法(最好是通過命令行,除非有人有更好的主意)打開/關閉此插件。

在Maven中觸發條件操作的正確方法是使用配置文件。 您可以配置一個特定的配置文件,包括激活插件,然后使用

mvn targetPhase -P myprofile

(您也可以指定特定的屬性值來激活配置文件)

請參閱Maven:使用基於配置文件的插件

正如@Gab提到的,使用Maven配置文件是正確的方法。 創建一個配置文件並在該配置文件中配置您的插件。 然后,在配置文件的activation部分中,引用環境變量(帶或不帶值):

<profiles>
  <profile>
    <activation>
      <property>
        <name>debug</name>
      </property>
    </activation>
    ...
  </profile>
</profiles>

如果在調用Maven時定義了debug變量,則上面的示例將激活配置文件:

mvn install -Ddebug

請注意,必須將環境變量添加-D前綴,才能將其傳遞給運行Maven的JVM。

可以在這里找到更多詳細信息: http : //maven.apache.org/guides/introduction/introduction-to-profiles.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM