在maven中,main / resources和main / config有什么区别?
我想把一个configuration文件放到我的Maven项目中。 看一下标准的目录布局 ,有两个看起来很明智的地方,“ src/main/resources
”和“ src/main/config
”。 有人可以解释这些之间的差异,并解释什么时候你会把东西在config
和resources
?
在这种情况下,我正在看的文件是ehcache.xml
,但我的问题不是ehcache特定的,我很好奇log4j.properties
等
有一点谷歌search发现这个人有同样的问题 ,但答案似乎矛盾,而不是很认真。
http://www.mail-archive.com/users@maven.apache.org/msg90985.html上的电子邮件交换说:;
“ 这都是理论……也许在编写文档时,Maven开发人员认为有一个src / main / config目录可能是有用的,所以它被包含在文档中,但是因为它从来没有在代码中实现过,它今天没有被使用。 “
和
“ 目录 [src / main / config] 不会显示在类path中,因此应用程序或testing类无法读取任何东西。 ”
所以只需使用src/main/resources
。
注意:我不知道这是否是真实的(我是问题提供者),但是这可以解释为什么networking上有那么多人推荐使用log4j.properties的src/main/resources
。 如果人们同意这是正确的答案,你可以让我知道(评论或投票)我把它放在这里,以保存其他人的打字。
scr/main/resources
是一个放置源代码使用的图像,声音,模板,语言包,文本和二进制文件的地方。 像excache.xml,log4j.properties,logback.xml和其他所有的configuration文件到src/main/config
。
添加到您的pom.xml
:
<build> <resources> <resource> <targetPath>.</targetPath> <directory>src/main/config</directory> </resource> </resources> </build>
由于src/main/config
和src/main/resources
之间的混淆,导致在Maven的标准目录布局中包含src/main/config
已被删除。 这个很好的stackoverflow问题实际上是在JIRA票据中从Maven的标准中删除src/main/config
引用的 。
简短的回答:使用src/main/resources
而不是src/main/config
。 这是(新)Maven的方式。
用例很简单,如果你问我。 (看来src / main / config已经被删除了标准的目录布局)
- / src / main / resources进入jar,然后进入classpath
-
/ src / main / config用于汇编插件,您可以在其中构build一个zip文件:
hello-world.zip lib/ <dependencies> bin/ run.bat run.sh config/ config.properies