2

我有一个多模块 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

由于类路径,配置目录覆盖了每个 *.jar 中的配置文件,即

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

现在我遇到的问题是每个 jar 中仍然包含所有开发配置。另外,我对使用该覆盖类路径方法有一种不好的感觉。有没有关于如何以更好的方式做到这一点的做法?

4

1 回答 1

2

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

于 2013-03-06T16:22:19.363 回答