我想在我的Maven项目中放置一个配置文件.查看标准目录布局,有两个看似合理的地方," src/main/resources"和" src/main/config".有人可以解释这些之间的区别,并解释你什么config时候放入什么东西resources?
在这种情况下,我正在查看的文件是ehcache.xml,但我的问题不是ehcache特定的,我很好奇log4j.properties等等.
一些谷歌搜索发现这个人有同样的问题,但答案似乎是矛盾的,而不是非常具有说服力.
Nic*_*cue 51
http://www.mail-archive.com/users@maven.apache.org/msg90985.html上的电子邮件交流 说:
" 这是所有的理论......也许在编写文档时,参与Maven开发的人认为有一个src/main/config目录可能是有用的,因此它包含在文档中,但因为它从未在代码中实现,它今天没有被使用. "
和
" 目录 [src/main/config] 没有显示在类路径上,因此应用程序或测试类无法读取其中的任何内容. "
所以只需使用src/main/resources.
注意:我不知道这是否属实(我是问题提问者),但这可以解释为什么Web上有这么多人推荐src/main/resourceslog4j.properties.如果人们同意这是正确的答案你可以告诉我(评论或投票)我把它放在这里是为了节省其他人的打字.
scr/main/resources您可以在其中放置源代码使用的图像,声音,模板,语言包,文本和二进制文件.所有配置文件,如excache.xml,log4j.properties,logback.xml和其他配置文件src/main/config.
添加到您的pom.xml:
<build>
<resources>
<resource>
<targetPath>.</targetPath>
<directory>src/main/config</directory>
</resource>
</resources>
</build>
Run Code Online (Sandbox Code Playgroud)
列入src/main/config在Maven的标准目录布局已被删除,部分原因引起的混乱src/main/config和src/main/resources。JIRA票证中src/main/config实际上引用了这个非常有堆栈溢出的问题,用于从Maven的标准中删除。
简短答案:src/main/resources请勿使用src/main/config。这是(新的)Maven方式。