使用Maven构建产物后,如何给最终Jar文件添加版本号命名?
Maven生成指定命名Jar文件(app-1.0.0.jar)的实现方法
普通Java项目(基于maven-jar-plugin)
默认Maven生成的Jar命名格式是artifactId-version.jar,要改成app-1.0.0.jar,直接在pom.xml的build节点下配置maven-jar-plugin的finalName即可:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <!-- 用最新稳定版即可 --> <configuration> <!-- 用项目版本变量,自动匹配pom里的version值 --> <finalName>app-${project.version}</finalName> <!-- 如果要固定版本,直接写死:<finalName>app-1.0.0</finalName> --> </configuration> </plugin> </plugins> </build>
配置完后执行mvn package,target目录里就会生成符合要求的Jar文件。
Spring Boot项目(基于spring-boot-maven-plugin)
如果是Spring Boot项目,因为默认用spring-boot-maven-plugin打包,有两种配置方式:
方式一:全局配置finalName
直接在build节点下设置全局finalName,插件会自动沿用这个命名:
<build> <finalName>app-${project.version}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.2.0</version> <!-- 对应你的Spring Boot版本 --> </plugin> </plugins> </build>
方式二:在Spring Boot插件内配置
也可以直接在插件的configuration里指定finalName:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.2.0</version> <configuration> <finalName>app-${project.version}</finalName> </configuration> </plugin> </plugins> </build>
同样执行mvn package,target目录就能得到app-1.0.0.jar(如果pom里的version是1.0.0),固定版本的话直接把${project.version}替换成1.0.0就行。
内容的提问来源于stack exchange,提问作者Wiggle
相关产品推荐
相关产品推荐

