Maven 2 在maven中,main/resources和main/config之间有什么区别?

Maven 2 在maven中,main/resources和main/config之间有什么区别?,maven-2,Maven 2,我想在我的Maven项目中放一个配置文件。看一下,有两个地方似乎很合理,“src/main/resources”和“src/main/config”。有人能解释一下这两者之间的区别吗?解释一下什么时候你会在config和resources中放东西 在本例中,我正在查看的文件是ehcache.xml,但我的问题不是特定于ehcache的,我想知道log4j.properties等等 谷歌搜索发现了一些问题,但答案似乎相互矛盾,也不是很有说服力。scr/main/resources是一个放置图像、声

我想在我的Maven项目中放一个配置文件。看一下,有两个地方似乎很合理,“
src/main/resources
”和“
src/main/config
”。有人能解释一下这两者之间的区别吗?解释一下什么时候你会在
config
resources
中放东西

在本例中,我正在查看的文件是
ehcache.xml
,但我的问题不是特定于ehcache的,我想知道
log4j.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>

.
src/main/config
在 说:

“这都是理论……也许在编写文档时,Maven开发人员认为有一个src/main/config目录可能会有用,因此它包含在文档中,但由于它从未在代码中实现过,所以现在没有使用。”

“目录[src/main/config]没有显示在类路径上,因此应用程序或测试类 里面什么都看不懂。”

所以只需使用
src/main/resources


注意:我不知道这是不是真的(我是问问题的人),但这可以解释为什么网上有那么多人推荐log4j.properties的
src/main/resources
。如果人们同意这是正确的答案,你能让我知道(评论或投票)我把它放在这里是为了节省其他人的打字时间。

如果你问我,用例非常简单。(似乎src/main/config已被标准目录布局删除)

  • /src/main/resources进入jar,从而进入类路径
  • /src/main/config适用于可能构造 压缩文件:

    hello-world.zip
     lib/
      <dependencies>
     bin/
      run.bat
      run.sh
     config/
      config.properies
    
    hello-world.zip
    解放党/
    垃圾箱/
    批处理文件
    run.sh
    配置/
    config.properies
    

由于
src/main/config
src/main/resources
之间的混淆,已删除中的
src/main/config
。这个问题实际上在本节中提到


简短回答:使用
src/main/resources
not
src/main/config
。这是(新的)马文方式。

我觉得这很合理,但你有推荐人吗?有各种各样的电子邮件,例如说资源是log4j的标准位置。propertiesCan找不到任何资源。这只是常识。不管你把它放在哪里,只要确保它在类路径上,这样它就会被log4j库获取。@Nick你可以遵循自己的规则,但实际上src/xxx/resources确实是配置文件的标准位置。任何时候你需要显式地为Maven配置提供一个目录,你都在做一些非标准的事情。我个人将log4j.properties这样的文件放在src/main/resources中,它“刚好工作”。我同意这个解决方案。默认情况下,放入
src/main/resources
的内容将成为jar文件的一部分。如果您希望配置文件位于JAR之外,那么我认为使用
src/main/config
更有意义。只要我的两分钱。这是正确的,只需使用
src/xxx/resources
就可以获得类路径上的所有非源文件。当然,您可以决定添加其他目录,但您需要向POM添加特定配置。感谢您的澄清。我在查看文档时,没有提到这一点:(我使用src/main/config来保存我不想打包到目标中的配置项,比如JBoss配置脚本。我想我找到了main/config目录的一个用例。我有两个可选的配置文件,在类路径中没有用处。应用程序及其容器的配置文件示例部署在上。我找不到其他地方可以放置它们。这可能是放置eclipse插件配置文件(findbugs、checkstyle等)的好地方。我不希望这些文件捆绑在归档文件中。