我正在开发一个包含多个模块的java maven项目。
我遇到了将配置文件从一个模块共享到其依赖项的问题。 例如,我有一个名为 utils 的模块,它包含一个log.properties文件,我想在另一个名为 gui 的模块中使用它。这样做的最佳做法是什么?
目前我们将log.properties放在 config 目录中,因为Maven标准布局建议它,并且它不包含在jar文件中。这是对的吗 ?我应该把它放在资源中吗?
我使用程序集插件将其复制到公共配置目录,这很有效,但是当我尝试单独构建每个模块时,无法访问配置文件。我该如何解决这个问题?
感谢您的帮助, 皮尔。
答案 0 :(得分:1)
您应该将配置放在src/main/resources/config/
中。这样它默认会包含在jar中。 maven惯例是默认情况下最终jar中只包含src/main/java
和src/main/resources
。
使其他模块可以直接访问属性文件不是一个好习惯。您应该在拥有配置的模块中提供服务,该配置是访问这些文件的唯一位置。该服务将能够为其他模块提供配置。否则你违反了单一责任原则。
答案 1 :(得分:0)
您可以将maven配置为在构建工件中包含src/main/config
目录,方法是在here所述的pom资源部分中指定它。