Java Maven-在子文件夹中引用属性文件无效
在我的Maven项目中,我有一个spring配置文件。它指的是一组属性文件。属性文件位于src/main/resources中的config文件夹下。Spring配置文件位于src/main/resources/META-INF/Spring/下。在安装过程中,根据Maven标准,所有这些文件都可以在目标/类下使用 现在在SpringConfigXML中:如果我像下面那样引用属性文件,它将不起作用 property name=“location”value=“classpath:test.properties” 或Java Maven-在子文件夹中引用属性文件无效,java,spring,maven,maven-3,Java,Spring,Maven,Maven 3,在我的Maven项目中,我有一个spring配置文件。它指的是一组属性文件。属性文件位于src/main/resources中的config文件夹下。Spring配置文件位于src/main/resources/META-INF/Spring/下。在安装过程中,根据Maven标准,所有这些文件都可以在目标/类下使用 现在在SpringConfigXML中:如果我像下面那样引用属性文件,它将不起作用 property name=“location”value=“classpath:test.pro
property name=“location”value=“classpath*:test.properties” 我被迫提供子文件夹以实际引用必要的属性文件。像这样的 property name=“location”value=“classpath:config/test.properties” 这就是Maven希望我们查找属性文件的方式吗?请澄清,并让我知道什么是最好的方式来做到这一点
感谢在春季
classpath
指的是classes
文件夹。如果您的配置文件位于classes
,config
子文件夹下,则需要指定子文件夹名称。因此,这就是为什么以下方法有效:
property name=“location”value=“classpath:config/test.properties”
现在可以工作了!!!我必须明确地提到子文件夹作为一个新的资源文件夹。默认情况下,maven类路径将指向src/main/resources。如果我们希望在特定的子文件夹中有一个属性文件和XML文件,那么应该在pom.XML中明确地将其作为一个单独的“build”标记提到,如下所示
<resource>
<directory>src/main/resources/config</directory>
<includes>
<include>*.xml</include>
<include>*.properties</include>
</includes>
</resource>
src/main/resources/config
*.xml
*.物业
这是一种Spring行为,与Maven关系不大。我想把问题改为问Spring希望在哪里找到这些课程。谢谢你的建议。实际上,我们目前正在从ant build升级到Maven build。在旧环境中,它工作得很好。所以我认为这与Maven而不是Spring有更多关系。classes文件夹的结构是否与Ant不同?是的。我们已将该项目分为多个模块。Java文件位于单独的模块中。所有配置文件都移动到单独的模块中。Java模块设置为依赖于包含配置文件的模块。但是除了模块化,配置文件文件夹结构仍然是一样的。现在可以工作了!!!我必须明确地提到子文件夹作为一个新的资源文件夹。默认情况下,maven类路径将指向src/main/resources。如果我们想在特定的子文件夹中包含属性文件和XML文件,那么应该在pom.XML中明确提到它。src/main/resources/config*.xml*.properties在我看来像是一种黑客行为,尤其是添加src/main/resources的子文件夹,我怀疑这会导致配置文件重复。类似${basedir}/src/main/config的东西更有意义。AFAIK,您在那里做的是将子文件夹复制到父文件夹(并像上面所说的那样复制配置)。您应该修复Spring配置。我没有看到任何配置文件的重复。唯一的区别是最终的类路径将所有文件复制到父文件夹,并且不再有子文件夹。此外,在我们的项目中,我们有大约80个spring配置XML,而且在未来几天内它肯定会增长。我需要父文件夹中的这些文件,仅用于单元/集成测试。修复每一个junit测试用例以查找我们合适的spring配置文件以及实际spring配置文件中的属性文件将非常繁琐。我们能否以任何其他方式实现这一目标?