我有一个多模块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方法有一种不好的感觉。有没有以更好的方式做到这一点的练习?
答案 0 :(得分:2)
将这些资源提取到每个提到的模块的基于classifier
的依赖项中。然后定义触发其使用的<profiles/>
。在程序集中,根据需要使用分类器。