2011-02-14 28 views
2

只有當某個文件不存在時,我纔想使用我的maven項目的一些插件執行。這個文件的路徑可以改變 - 這就是爲什麼它必須包含一個屬性(如果不是這種情況,請糾正我)。一種好的方法是對文件使用配置文件激活,但因爲路徑有一個屬性,所以不起作用(如Maven 'Introduction to build profiles'中所述)。如何在文件路徑中使用maven中的屬性做出反應?

這就是說,問題是:你知道一種方法來實現只有一個POM所需的行爲?

當然,執行者插件提供了對文件作出反應的有限方式,但我不想失敗或中斷構建。

回答

2

沒有什麼可以做的。這裏有你的選擇:

  1. 住的限制。您可以配置文件路徑的唯一方法是通過系統屬性(用戶屬性使用配置文件進行評估,而不是其他方式):

    <profile> 
        <id>foobar</id> 
        <activation> 
         <file><exists>${file.path}</exists></file> 
        </activation> 
    </profile> 
    
    mvn -Dfile.path=some/path/file.txt clean install 
    
  2. Maven Invoker調用執行程序,e.g。無論是

    • 編寫自定義插件或
    • 寫一個主類,並從Exec:Java
    • 稱它爲使用內聯Groovy腳本與GMaven

    上述任何一種選項之一將不得不表現爲調度員,調用者根據屬性的評估使用調用者調用mojos。

+0

我沒有想到使用的定義和系統屬性之間的區別 - 感謝您的回答! – Jan 2011-02-22 12:09:02

相關問題