Java 如何将Maven配置文件值注入属性文件
有点困在这里。我有一个有3个配置文件的pom。这些配置文件有不同的版本名。我想在生成特定配置文件时将该版本名注入属性文件 我的个人资料:Java 如何将Maven配置文件值注入属性文件,java,maven,Java,Maven,有点困在这里。我有一个有3个配置文件的pom。这些配置文件有不同的版本名。我想在生成特定配置文件时将该版本名注入属性文件 我的个人资料: <profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activat
<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>
怎么做?Im通过命令创建项目:
mvn clean install -D profile_name
请注意所显示的配置文件。默认情况下,它们都处于活动状态,这是一个问题,因为它们都定义了相同的maven属性。相反,您应该在默认情况下仅将一个标记为活动 您也没有显示
筛选以处理筛选.properties
,因此这也可能是一个错误
最后一点,您正在控制maven概要文件上的工件版本。我认为这不是个好主意。请阅读。您需要做的是在POM文件的
部分中添加一个新部分
像这样:
<build>
<resources>
<resource>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
请注意这些变量的名称。Maven将用您定义的名称替换它,或者像${projectVersion}这样的Maven结构的名称将被pom文件的1.0
标记替换
因此,与其使用:
<properties>
<projectVersion>1.0.0-Final</projectVersion>
</properties>
注意-D不会激活任何配置文件,-P会这样做。另外,这三个配置文件在默认情况下是活动的,这是您想要的吗?啊,当然-P(我的错误!)。我的最终目标是构建一个简单的web应用程序,它有一个带有应用程序名称和应用程序版本的页面。此网页中的版本名取决于配置文件版本名。我的想法是将配置文件版本值设置为属性,并将属性设置为JSP页面。如果是您的选择之一。为了防止人们狩猎,在SB 1.3.0中对其进行了更改。下面是github.com/spring projects/spring boot/wiki/…–mdo123请检查,我无法使它在每个线程中工作。提前谢谢。
projectName = ${defaultName}
versionName = ${defaultVersion}
<properties>
<projectVersion>1.0.0-Final</projectVersion>
</properties>
<properties>
<defaultVersion>1.0.0-Final</defaultVersion>
<defaultName>someName</defaultName>
</properties>
mvn install -Pprofilename