gpt4 book ai didi

java - 如何将 Maven 配置文件值注入(inject)属性文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:29 25 4
gpt4 key购买 nike

小卡在这里。我有一个包含 3 个配置文件的 pom。这些配置文件具有不同的版本名称。我想在构建特定配置文件时将该版本名称注入(inject)属性文件。

我的资料:

<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<projectVersion>DEV</projectVersion>
</properties>
</profile>

<profile>
<id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<projectVersion>1.0.0-RC1</projectVersion>
</properties>
</profile>

<profile>
<id>prod</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<projectVersion>1.0.0-Final</projectVersion>
</properties>
</profile>
</profiles>

filter.properties 看起来像这样:

projectName = defaultName
versionName = defaultVersion

该怎么做?我正在通过命令构建项目:

mvn clean install -D profile_name

最佳答案

您需要做的是向您的 <build> 添加一个新部分POM 文件的一部分。

像这样:

<build>
<resources>
<resource>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>

这将查看指定文件夹 ( src/main/resources ) 中的指定文件 **/*.properties并在遇到定义的变量时更改文件。

所以为了这项工作,您的属性文件必须是这样的:

projectName = ${defaultName}
versionName = ${defaultVersion}

注意这些变量名称。 Maven 将用您定义的名称替换它,或者 Maven 结构的名称如 ${projectVersion} 将被替换为 <version>1.0</version> pom 文件的标签。

所以不要使用:

<properties>
<projectVersion>1.0.0-Final</projectVersion>
</properties>

将此变量的名称(和版本)更改为其他名称,例如:

<properties>
<defaultVersion>1.0.0-Final</defaultVersion>
<defaultName>someName</defaultName>
</properties>

在您的所有个人资料上。

只需运行您的 maven 命令:

mvn install -Pprofilename

关于java - 如何将 Maven 配置文件值注入(inject)属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34289889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com