如何使用 Maven 将占位符从源 file.properties 替换为另一个 file.properties

how to replace placeholder from a source file.properties to another file.properties with Maven

我正在学习如何使用 Maven 将一个文件属性的占位符替换为另一个文件属性。我的项目有一个名为 testMaven 的主文件夹,我在项目中创建了两个文件属性,其中第一个文件位于 testMaven->local->value.properties 中,文件中有:

用户=测试用户 密码=测试密码

而不是位于 src/main/java->test.properties 中的第二个文件属性有:

用户=@用户@ 密码=@密码@

我想在文件 Jar 中加入一个文件属性,其中的字段替换为: 用户=测试用户 密码=测试密码

如何在文件pom.xml中写入来完成上面的描述? 谢谢

您将需要使用两个插件:

它们的可用文档很简单。

更新

给定一个 custom.properties 文件:

custom.user=testUser
custom.password=testPassword

阅读:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <version>${properties-maven-version}</version>
            <executions>
                <execution>
                    <phase>initialize</phase>
                    <goals>
                        <goal>read-project-properties</goal>
                    </goals>
                    <configuration>
                      <files><file>${jbake.inputDirectory}/custom.properties</file>
                      </files> 
                    </configuration>
                </execution>
            </executions>
        </plugin>

现在,您需要 运行 每个 属性 的替代品:

            <plugin>
                <groupId>com.google.code.maven-replacer-plugin</groupId>
                <artifactId>replacer</artifactId>
                <version>${replacer-maven-version</version>
                <executions>
                    <execution>
                        <id>replace-for-documentation</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>replace</goal>
                        </goals>
                        <configuration>
                            <preserveDir>true</preserveDir>
                            <basedir>${basedir}/src/main/resources</basedir>
                            <outputBasedir>${basedir}</outputBasedir>
                            <outputDir>src/site</outputDir>
                            <ignoreErrors>true</ignoreErrors>
                            <regex>false</regex>
                            <delimiters>
                                <delimiter>@</delimiter>
                            </delimiters>
                            <filesToInclude>
                                *.properties
                            </filesToInclude>
                            <replacements>
                                <replacement>
                                    <token>user</token>
                                    <value>${custom.user</value>
                                </replacement>
                                <replacement>
                                    <token>password</token>
                                    <value>${custom.password}</value>
                                </replacement>
                            </replacements>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

在 src/main/resources 下的属性文件中出现的任何 @user@ 或 @password@ 都将被替换。生成的文件将在 src/site