如何修改Java项目pom.xml中特定依赖的生成名称以去除版本号
嘿,这个需求我太熟悉了——每次版本升级还要改一堆脚本里的文件名确实烦!下面给你几个基于Maven的解决方案,完美解决这个问题:
1. 通用Java项目:配置Maven Jar Plugin
这是最直接的方式,通过修改maven-jar-plugin的配置,指定生成的jar文件名只保留artifactId,去掉版本号。在你的pom.xml中添加如下配置:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <!-- 建议使用最新稳定版本 --> <configuration> <!-- 直接用项目的artifactId作为最终文件名 --> <finalName>${project.artifactId}</finalName> </configuration> </plugin> </plugins> </build>
执行mvn package后,target目录里生成的文件就是artifact-b.jar,不管你后续怎么修改<version>标签里的版本号,文件名都不会变。
2. Spring Boot项目:配置Spring Boot Maven Plugin
如果你是Spring Boot项目,注意spring-boot-maven-plugin会覆盖默认的Jar Plugin设置,所以需要直接在这个插件里配置:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.2.0</version> <!-- 对应你的Spring Boot版本 --> <configuration> <finalName>${project.artifactId}</finalName> </configuration> </plugin> </plugins> </build>
这样打包出来的可执行jar同样会去掉版本号,完全适配你的脚本调用需求。
3. 多模块项目:全局统一配置
如果是多模块项目,不想每个子模块都重复写配置,可以在父pom的pluginManagement里统一设置,所有子模块继承后自动生效:
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <configuration> <finalName>${project.artifactId}</finalName> </configuration> </plugin> <!-- 如果是Spring Boot多模块,同样在这里配置spring-boot-maven-plugin --> </plugins> </pluginManagement> </build>
小提示
这个配置只会影响本地target目录生成的输出文件,发布到Maven仓库的jar包依然会保留版本号(符合仓库的规范),完全不影响正常的依赖发布,只是刚好满足你脚本调用时无需修改文件名的需求。
内容的提问来源于stack exchange,提问作者catBoi
相关产品推荐
相关产品推荐

