2015-03-13 68 views
1

是否有可能爲我的項目獲取目錄$ {project.build.directory} /test-1.0-SNAPSHOT?有爆炸戰爭目錄的maven屬性嗎?

我必須從這個目錄中排除某些文件進行強化掃描,並且我剛剛意識到當版本發生變化時,此目錄也會發生變化。是否有一個屬性可以用來替換此目錄的名稱?

+0

請參閱http://stackoverflow.com/questions/6129581/in-maven-how-to-rename-the-output-war-file-based-on-the-name-of-the-profile-i for重新命名戰爭的方法 – 2015-03-13 19:27:14

+0

名稱沒有任何問題。我需要的是我可以使用的名稱屬性,而不是在我的pom文件中對名稱進行硬編碼。 – 2015-03-13 19:38:11

+0

該名稱來自構建內的finalName。所以也許project.build.finalName ist你在找什麼? – wemu 2015-03-13 22:35:13

回答

2

$ {project.build.directory}的值是構建目錄的路徑。這是一個項目屬性,在3.0之前是一個pom屬性,只能在pom.xml文件或Maven Resource插件的過濾功能正在處理的任何資源中使用。例如,它不是一個可用於bash命令行的環境變量。您可能感興趣的另一個項目屬性是$ {project.build.finalName},它指的是構建的項目打包時創建的文件的最終名稱。

如果你可以修復戰爭的路徑,包括它的名字,那就應該解決問題。 Maven: How to change path to target directory from command line?中描述了兩種方法。有一種方法可以通過編譯-D開關在命令行上執行,但不推薦使用;另一種方式在pom.xml中定義了一個配置文件,該配置文件對它進行了硬編碼,並且還通過編譯-D開關進行調用。也可參見Maven: specify the outputDirectory only for packaging a jar?,其中類似的方法應該也適用於戰爭。

maven屬性和配置的其他參考包括http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuidehttp://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html。最後一個參考給出了一些使用pom.xml中的項目屬性用於特定目的的例子,在評論中也有很好的例子。

+0

謝謝!這幫了很多。 – 2015-03-16 17:19:53