Maven Assembly:配置文件的最佳实践

时间:2013-03-06 13:46:44

标签: java maven maven-assembly-plugin

我有一个多模块maven项目,包括一个单独的程序集项目。当我从eclipse(开发期间)开发和运行我的应用程序时,我在我的主模块(包含主类)中有特定的配置文件(例如log4j或其他属性文件)。这些文件包含特定于开发时间的信息。程序集项目包含用于生产的每个配置文件。然后组装好的产品应该使用这些配置。这是我目前的设置:

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

由于类路径,config-directory覆盖每个* .jar中的配置文件,即

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

现在我遇到的问题是,每个jar中仍然包含所有dev-configs。我对使用overlay-classpath方法有一种不好的感觉。有没有以更好的方式做到这一点的练习?

1 个答案:

答案 0 :(得分:2)

将这些资源提取到每个提到的模块的基于classifier的依赖项中。然后定义触发其使用的<profiles/>。在程序集中,根据需要使用分类器。