Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪个application.yml表示';测试时将使用src/main/resources和src/test/resources目录中的re_Java_Spring Boot_Maven 3 - Fatal编程技术网

Java 哪个application.yml表示';测试时将使用src/main/resources和src/test/resources目录中的re

Java 哪个application.yml表示';测试时将使用src/main/resources和src/test/resources目录中的re,java,spring-boot,maven-3,Java,Spring Boot,Maven 3,在SpringBootMaven项目中,在src/main/resources和src/test/resources中分别有一个application.yml文件 运行测试用例时,测试似乎只使用src/test/resources目录中的文件。它不会加载两个文件并覆盖src/main/resources/application.yml中的属性。 如果src/test/resources目录中没有该文件,它将使用src/main/resources目录中的文件 spring如何引导加载这两个目录中

在SpringBootMaven项目中,在
src/main/resources
src/test/resources
中分别有一个
application.yml
文件

运行测试用例时,测试似乎只使用
src/test/resources
目录中的文件。它不会加载两个文件并覆盖
src/main/resources/application.yml
中的属性。 如果
src/test/resources
目录中没有该文件,它将使用
src/main/resources
目录中的文件

spring如何引导加载这两个目录中的
application.yml
文件?规则是什么?或者此操作依赖于什么?
我在哪里可以在线查找有关此的更多信息

src/main/resource/application.yml

name: Phil(main)
sample:
  name: Andy(main)
name: Phil(test)
sample:
  name: Andy(test)
src/test/resource/application.yml

name: Phil(main)
sample:
  name: Andy(main)
name: Phil(test)
sample:
  name: Andy(test)
案例1:
src/main/resource/application.yml
存在
输出:你好,菲尔(梅因),安迪(梅因)

案例2:
src/main/resource/application.yml和
src/test/resource/application.yml都存在
输出:你好,菲尔(测试),安迪(测试)

案例3:
src/main/resource/application.yml
src/test/resource/application.yml
都存在,并在
src/test/resource/application.yml中注释掉
name
输出:
错误-java.lang.IllegalArgumentException:无法解析值“${name}”中的占位符“name”


这个测试似乎没有从
src/main/resource/application.yml中读取属性,所以它无法找到
name
属性。

Spring检测到这两个目录,并且正如您所说的,它正在根据存在和优先级确定要使用的配置。如果您想让spring使用特定的设置,您应该定义
spring配置文件
,它可以具有专门的设置以及扩展默认设置。

我正在使用yml文件,并确保在构建应用程序时加载这些属性文件,最好在pom.xml中使用以下配置

<build>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.jks</include>

                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>${project.basedir}/src/test/resources</directory>
            </testResource>
        </testResources>
 ....
</build>

src/main/resources
**/*.物业
**/*yml先生
**/*.jks
${project.basedir}/src/test/resources
....

确保运行构建(如果需要,从头开始,比如删除.m2中的存储库文件夹-可能根本不需要),现在检查
目标/类
,其中应该包含所有指定类型的文件

,我在哪里可以在线找到有关此主题的加载规则(官方解释)?spring文档页面?