2013-03-06 177 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/>。在你的程序集中根据需要使用分类器。