如何在Maven中跨模块共享配置文件

时间:2013-05-02 11:47:01

标签: maven configuration jar dependencies maven-assembly-plugin

我正在开发一个包含多个模块的java maven项目。

我遇到了将配置文件从一个模块共享到其依赖项的问题。 例如,我有一个名为 utils 的模块,它包含一个log.properties文件,我想在另一个名为 gui 的模块中使用它。这样做的最佳做法是什么?

目前我们将log.properties放在 config 目录中,因为Maven标准布局建议它,并且它不包含在jar文件中。这是对的吗 ?我应该把它放在资源中吗?

我使用程序集插件将其复制到公共配置目录,这很有效,但是当我尝试单独构建每个模块时,无法访问配置文件。我该如何解决这个问题?

感谢您的帮助, 皮尔。

2 个答案:

答案 0 :(得分:1)

您应该将配置放在src/main/resources/config/中。这样它默认会包含在jar中。 maven惯例是默认情况下最终jar中只包含src/main/javasrc/main/resources

使其他模块可以直接访问属性文件不是一个好习惯。您应该在拥有配置的模块中提供服务,该配置是访问这些文件的唯一位置。该服务将能够为其他模块提供配置。否则你违反了单一责任原则。

答案 1 :(得分:0)

您可以将maven配置为在构建工件中包含src/main/config目录,方法是在here所述的pom资源部分中指定它。