如何在Maven中的模块之间共享配置文件

问题描述:

我正在开发一个带有多个模块的java maven项目。如何在Maven中的模块之间共享配置文件

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

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

我使用程序集插件将它复制到一个通用的配置目录,这很好,但是当我尝试单独构建每个模块时,配置文件无法到达。我该如何解决这个问题?

感谢您的帮助, Pierre。

你应该把你的配置放在src/main/resources/config/。这样它将默认包含在jar中。 maven约定默认情况下,最终jar中只包含src/main/javasrc/main/resources

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

+0

感谢您的回答,那就是我最终做的。 – Pierre 2013-05-06 11:23:33

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