Maven资源插件过滤不起作用

fhc*_*cat 7 maven maven-resources-plugin

我有一个POM,其中包含以下内容:

<properties>
    <prop1>xxxxxxxxxx</prop1>
</properties>
<build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <resources>
        <resource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
 </build>
Run Code Online (Sandbox Code Playgroud)

我在下面有一个属性文件src/test/resources

p1=${prop1}
Run Code Online (Sandbox Code Playgroud)

我的目标是将.properties文件复制到target/test-classes目录中并自动更改p1的值。但这行不通。它复制资源,但不更改值。

Tun*_*aki 7

问题在于您正在配置主要资源而不是测试资源。主要资源配置有resource元素,而测试资源配置有testResource元素。使用当前配置,下面的文件src/test/resources将被视为已过滤的主要资源,而实际的测试资源将不被过滤。这就是为什么target/test-classes未过滤复制的属性文件的原因。

您正在寻找的是:

<testResources>
  <testResource>
    <directory>src/test/resources</directory>
    <filtering>true</filtering>
  </testResource>
</testResources>
Run Code Online (Sandbox Code Playgroud)

这样,下面的文件src/test/resources将被视为过滤后的测试资源,而主要资源将保持不变。