maven 打包

本文介绍了如何在复杂项目中使用mavenversions插件统一设置和管理版本号,包括设置、提交和发布过程,以及注意事项。特别强调了对于模块众多项目的打包策略和版本一致性检查。

        工作中会时常遇到maven打包,并将打好的二方包提供给其他同事使用。maven打包的原理本质上是修改项目中相关pom的version,然后执行maven打包命令。

        对于要打的包如果本身模块数量不多,关系简单的,可以直接修改pom文件中的version,然后打包。但是对于模块很多的项目,建议使用如下命令打包:

# 统一设置版本号
mvn versions:set -DnewVersion=1.0.0-DAILY_SNAPSHOT

# 提交版本号
mvn versions:commit

# 回退版本号(未执行上面回退版本命令)
mvn versions:set -DnewVersion=1.0.0-DAILY_SNAPSHOT

# 发布到私有仓库,跳过测试代码
mvn clean deploy -DskipTests

注:

1)设置号版本后,建议检查下设置的version是否都符合预期

2)maven打包本质上是在一个最新的分支上打包,如果借助于第三方平台打包,如阿里的aone,当打包版本和你修改提交的不一致,需要检查下打包的当前分支代码是否包含你修改后的打包版本,如不是,则需要重新部署打包。

参考文档:

maven如何动态统一修改版本号 - 知乎

### 如何使用 Maven 进行 Java 项目的打包 对于希望将 Java 项目通过 Maven 打包的情况,通常会涉及到配置 `pom.xml` 文件来指定使用的插件及其设置。以下是几种常见的方法: #### 使用 maven-jar-plugin 插件进行简单程序的打包 如果是一个较为简单的 Java 应用,并且没有额外依赖其他库,则可以直接利用 `maven-jar-plugin` 来完成打包工作。这需要在 `pom.xml` 中定义该插件的相关配置[^3]。 ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.2</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>com.example.MainApp</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 上述 XML 片段展示了如何配置 `maven-jar-plugin` ,其中 `<mainClass>` 需要替换为实际应用程序中的主类名称。 #### 处理多个输出文件的问题 当同时引入了 `maven-assembly-plugin` 后可能会遇到生成两个 JAR 文件的情形。为了避免这种情况发生,可以通过调整生命周期阶段绑定的方式解决这个问题。例如,可以让 `maven-jar-plugin` 绑定到一个不会触发其执行的任务上,从而阻止默认行为下的 jar 创建过程[^2]。 #### 利用 maven-shade-plugin 或者 maven-assembly-plugin 实现更复杂的打包需求 针对那些不仅限于单一可执行 jar 的场景——比如还需要附带资源文件或者其他形式的支持材料时,可以选择采用 `maven-shade-plugin` 或者 `maven-assembly-plugin` 。前者能够创建含所有依赖项在内的单个 jar;后者则允许构建自定义结构的分发,甚至支持多模块工程的整体部署方案[^4]。 为了实现这些功能,在 pom 文件里加入相应的 plugin 定义并根据实际情况定制化选项即可满足不同的业务逻辑要求。 ```xml <!-- Example of using maven-shade-plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals><goal>shade</goal></goals> </execution> </executions> </plugin> <!-- Or use maven-assembly-plugin instead --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!-- Configuration details here... --> </configuration> </plugin> ``` 以上就是一些基本指导原则和技术细节说明,帮助理解怎样借助 Apache Maven 工具有效地管理 Java 应用程序的编译、测试以及最终的产品发布流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值