javamaventestngpom.xmlmaven-resources-plugin

Maven testResource filtering is not working in pom.xml


I am using testResource to filter data in pom.xml. But instead of printing the data, I am getting back the variable itself as shown in the code. Looks resource filtering is not happening. Can someone please advise me what am I doing wrong here and how to correct it.

pom.xml

<project 

  <properties>
    <local.buildNumber>${local.bhuildNumber}</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 structure:

Project
-src
--main
----java
--test
----java
----resources
------global.properties
--pom.xml
--target/

Solution

  • Config

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

    And for load file try working with the ClassLoader class:

    ClassLoader classLoader = getClass().getClassLoader();
    File file = new File(classLoader.getResource("global.properties").getFile());
    System.out.println(file.getAbsolutePath());