maven - Spring Boot 和 Maven 内部版本号插件
问题描述
我正在使用 Spring boot 2.0.5,并添加了代码以使用 maven 内部版本号插件生成内部版本号。内部版本号生成正常。我可以在 jar 和 builNumber.properties 文件中看到,但它没有被 version.txt 文件中的 finalName 替换。
额外细节:
这是我的POM。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>buildNumber</id>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<format>{0,number}</format>
<items>
<item>buildNumber</item>
</items>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<revisionOnScmFailure>unknownbuild</revisionOnScmFailure>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<finalName>${project.artifactId}-${project.version}.${buildNumber}</finalName>
</build>
我在资源文件夹中创建了 version.txt 文件,它有以下文本。
@project.build.finalName@
在 maven clean install 上,此文件在目标文件夹中更新。在下面的日志第 2 行中,您可以看到内部版本号已添加到 jar 文件名中。
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ try ---
[INFO] Building jar: /home/ubuntu/Spring/SpringBootData-REST/target/try-0.0.1-SNAPSHOT.10.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.0.5.RELEASE:repackage (default) @ try ---
[INFO]
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ try ---
[INFO] Installing /home/ubuntu/Spring/SpringBootData-REST/target/try-0.0.1-SNAPSHOT.10.jar to /home/ubuntu/.m2/repository/com/try/0.0.1-SNAPSHOT/try-0.0.1-SNAPSHOT.jar
[INFO] Installing /home/ubuntu/Spring/SpringBootData-REST/pom.xml to /home/ubuntu/.m2/repository/com/try/0.0.1-SNAPSHOT/try-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
但是 buildNumber 在 version.txt 中没有被替换。这是 maven 全新安装后的样子。
try-0.0.1-SNAPSHOT.${buildNumber}
这是带有 buildNumber 的 buildNumber.properties 文件。
#maven.buildNumber.plugin properties file
#Sat Mar 09 11:51:51 CST 2019
buildNumber=10
你能指出什么是错的吗?
解决方案
所以我找到了一个解决方法。将我的 Version.txt 更改为下面而不是 @project.build.finalName@ 并且它现在工作正常。
@project.artifactId@
@project.version@
@buildNumber@
输出
SpringBootDataRest
1.0
15
推荐阅读
- c# - 在报表数据集中输入数据
- java - 如何解决无法找到或加载主类?
- eclipse - 如何像 Zend Studio 一样在 Eclipse 中实现远程系统?
- php - 如何在另一个控制器 cakephp 1.3 中使用 App 控制器方法
- cmd - Windows 10 上的 bcdedit 命令问题
- json - Swift,如何使用 Decodable 和 Codable 解析/解码 JSON,当密钥未知/动态时
- spring-security - 如何在 Spring WebFlux 中使用 @PreAuthorize?
- django - 覆盖模型字段选择选项未通过验证
- android - Phonegap - 调用外部 PHP 的问题
- javascript - 如何通过量角器从日历中选择日期?