2013-03-06 103 views
2

我有一個多模塊maven項目,包括一個單獨的組裝項目。當我在eclipse中開發和運行我的應用程序時(在開發過程中),我在我的主模塊(包含main-class)中有特定的配置文件(例如log4j或其他屬性文件)。這些文件包含特定於開發時間的信息。程序集項目包含每個用於生產的配置文件。組裝後的產品應該使用這些配置。這是我的當前設置:Maven Assembly:配置文件最佳實踐

MainModule/src/main/resources 
    +configA.properties 
    +log4j.properties 
Module1/src/main/resources 
    +configB.properties 
AssemblyProj/src/main/resources 
    +configA.properties 
    +configB.properties 
    +log4j.properties 

而產生的項目有這樣的結構:

libs/ 
    +MainModule.jar 
    +Module1.jar 
configs/ 
    +configA.properties 
    +configB.properties 
    +log4j.properties 

的配置目錄覆蓋在每個配置檔案的* .jar因爲類路徑,即

java -cp configs/;libs/* My.Main.Class 

現在我的問題是,每個jar中仍然包含所有dev-configs。另外,我對使用overlay-classpath-method有一種不好的感覺。有沒有關於如何以更好的方式做到這一點的做法?

+0

據說最佳實踐問題在SO上不鼓勵 – Dariusz 2013-03-06 16:22:06

回答

2

將這些資源提取到基於classifier的每個提到的模塊的相關性中。然後定義觸發其使用的<profiles/>。在你的程序集中根據需要使用分類器。