2015-10-15 81 views
0

有沒有辦法讓maven在執行package命令時可以創建一個新文件?例如,在資源路徑中,創建一個名爲'project.properties'的文件,並且我可以傳入參數?maven可以在打包時創建一個新文件嗎?

+1

你的問題真的不清楚。你想在哪裏創建文件?你爲什麼要創建這個文件?內容應該是什麼? – Tunaki

+0

@ Tunaki,我的項目都是Web應用程序的類型。我想在所有應用程序的「WEB-INF/classes」路徑中創建一個文件。我需要在文件中寫入一些應用程序的信息,例如projectId = 123 \ n appName = name',因爲我需要知道動態信息。 –

+0

發佈預期文件的示例 – Tunaki

回答

3

你需要做的是filtering

  1. 屬性添加到您的Maven的配置:

    <properties> 
    <abc.def>123456</abc.def> 
    </properties> 
    
  2. 啓用過濾:

    <resources> 
        <resource> 
        <directory>src/main/resources</directory> 
        <filtering>true</filtering> 
        <includes> 
        <include>**/*.properties</include> 
        </includes> 
    </resource> 
    <resources> 
    
  3. 創建一個文件在你的類路徑中,即src/main/resources/application.properties。

  4. 添加您需要在application.properties文件中的屬性:

    abcValueAfterBuild = $ {} abc.def

更新

創建像其他文件的文件。在資源階段,它將被過濾(變量$ {..}將被值替換)和一個包階段,該文件將被添加到戰爭類路徑的根目錄。

+0

我不認爲'includes'在這裏是必要的(默認情況下它包括文件夾下的所有東西) – Tunaki

+0

是的,但是你應該避免過濾二進制文件等等。 – Stefan

+0

很好的答案;可選地,Google替代品插件可以在標準化過濾邏輯之上提供更多的創作自由:https://code.google.com/p/maven-replacer-plugin/ – Gimby

相關問題