Maven testResource过滤在pom.xml中不起作用

问题描述 投票:0回答:1

我正在使用testResource来过滤pom.xml中的数据。但是我没有打印数据,而是返回了代码本身所示的变量本身。看起来资源过滤没有发生。有人可以告诉我我在做什么错以及如何纠正它。

pom.xml

<project 

  <properties>
    <local.buildNumber>40</local.buildNumber>
  </properties>

  <dependencies></dependencies

  <build>
    <testResources>
      <testResource>
        <directory>/src/test/java/resources</directory>
        <filtering>true</filtering>
      </testResource>
    </testResources>

        <plugins></plugins>

  </build>
</project>

global.properties

local.buildNumber=${local.buildNumber}

A.java

public void finish() throws IOException {

        Properties prop = new Properties();
        FileInputStream fileInput = new FileInputStream("src/test/java/resources/global.properties");
        prop.load(fileInput);
        String value = prop.getProperty("local.buildNumber");

        //it prints ${local.buildNumber} though I am expecting 40
        System.out.println(value); }

项目结构:

Project
-src
--main
----java
--test
----java
----resources
------global.properties
--pom.xml
--target/
java maven testng pom.xml maven-resources-plugin
1个回答
0
投票

配置


<build>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
    </build>

对于加载文件,请尝试使用ClassLoader类:

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("global.properties").getFile());
System.out.println(file.getAbsolutePath());
© www.soinside.com 2019 - 2024. All rights reserved.