java - 如何从 pom.xml 更新属性文件的值

标签 java maven pom.xml

我想在运行 mvn test 时更新 pom.xml 中的 application.properties 文件值。 值必须在运行时从 pom.xml 传递到 application.properties pom.xml

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>    
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>3.0.0-M4</version>
                    <configuration>
                        <suiteXmlFiles>
                            <suiteXmlFile>src/test/resources/phomeTestNg.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>    
            </plugins>  
        </pluginManagement>
        <resources>
            <resource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build> 

application.properties 文件 间隙=${project.build.sourceEncoding}

java代码

        FileReader reader=new 
        FileReader(System.getProperty("user.dir")+"\\src\\test\\resources\\application.properties");          
        Properties p=new Properties();  
        p.load(reader);           
        System.out.println("Properties  "+p.getProperty("gapp"));  

文件夹结构

enter image description here

最佳答案

有一个名为 properties-maven-plugin 的插件。这将创建一个具有您指定名称的属性文件。然后您可以像在任何属性文件中一样直接访问所有变量。这可能不是确切的解决方案。但也许会给你一个方向。 这是一个代码示例,您可以看一下。这将是你的 pom :

<properties>
    <name>${project.name}</name>
     <version>${project.version}</version>
     <foo>bar</foo>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <version>1.0.0</version>
            <executions>
                <execution>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>write-project-properties</goal>
                    </goals>
                    <configuration>
                        <outputFile>${project.build.outputDirectory}/my.properties</outputFile>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

从另一个问题中获取此代码。 https://stackoverflow.com/a/26589696/7241652

关于java - 如何从 pom.xml 更新属性文件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59118380/

相关文章:

java - 有什么办法可以更轻松地做到这一点?

java - 有谁知道如何在 java swing 中替代 Google 最近的起始页?

java - 在 Mac OS X 上预安装的 Maven 给出 java.lang.ClassNotFoundException

java - 是否可以使用 Maven 生成带有日期的文本文件?

Maven - pom 内属性名称中的特殊字符

java - 为什么这个枚举编译?

java - DiffMatchPatch 正则表达式容易出现灾难性回溯?

java - 如何使用maven下载具有所有依赖项的jar?

java - 如何将普通 Java 项目功能添加到 Eclipse (.ear) 中的 EJB 项目?

java - 错误注入(inject) : org. jvnet.mjiip.v_2.XJC2Mojo java.lang.NoClassDefFoundError: com/sun/xml/bind/api/ErrorListener