`
bruce008
  • 浏览: 172872 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Maven 在项目中的管理- 发布项目

阅读更多

如果项目中依赖通过Maven 来管理, 就涉及到如果项目发布。 项目发布的时机通常是每个迭代,或者一个阶段结束我们需要release 一个新的版本。  在Maven中, release 一个项目的前提条件是:

    1,    mvn,  svn  命令行工具可用。 mvn release 会间接的调用svn 来提交修改过的pom 文件到仓库。

    1,  编译,测试通过。 或者说至少编译通过, 测试我们可以-Darguments="-DskipTests" 来跳过。

    2,  依赖中没有SNAPSHOT 的项目。 这个比较好理解Release 一个项目意味着这个项目比较稳定了, 稳定的版本当然不能依赖不稳定的SNAPSHOT 了。 

 

  我们可以先执行 maven release:prepare -DautoVersionSubmodules=true -Darguments="-DskipTests"。 这个 prepare 完成的事情主要包括:

     1, 更新pom 文件将其中的x-SNAPSHOT 版本更新成 x  版本; 将pom中的

     2, 更新pom 中的tag 的引用。

     3, 由于我们的项目涉及到多个子module, 所以会不仅是parent 的pom , 子module 的pom 也会修改。 -DautoVersionSubmodules=true  就是起这个作用,不需要每一个子module 都输入版本, 直接使用paren的版本就好。

     4, 编译并且test 代码。 我们可以通过  -Darguments="-DskipTests"来跳过。

     5, 产生backup 文件。  

     6,  提交pom。 

     7,  升级pom 中的版本   x  到下一个 SNAPSHOT 版本。 

    当然在这个过程中 mvn 会提示我们输入  tag 的名字,  release 的版本 ,下一个 SNAPSHOT的版本。 我们可以直接回车使用mvn提供的默认值就ok。  

 

如果一切都ok,  我说的是如果,这个过程会有两次提交pom 文件。  一次 x-SNAPSHOT 到x  release 版本。 一次是 x -release  到  x + 0.0.1 SNAPSHOT 版本。  如果中间有错误 我们可以通过  mvn release:rollback 来回滚。一般来将如果有啥意外, 它打出来的那个tag 里面的pom 文件也会有问题。  需要double check 那个tag 里面的pom 文件。   

 

我们必须按照项目的依赖顺序, 先将它的所有依赖 发布好版本, 然后将项目pom 的依赖改成release 版本,然后再来做它自己的版本发布。  比如 项目  B- 1.0.0-SNAPSHOT 依赖 A-1.0.1-SNAPSHOT。 我们必须先将 A 发布一个 A-1.0.1 版。 然后将 B-1.0.0-SNAPSHOT 中pom 文件的A 的依赖版本改成 从 1.0.1-SNAPSHOT 改成 1.0.1 然后再来发布 B。

 

 

下一步就是 执行  mvn release:perform 。   本人的做法用 mvn  clean deploy 来代替。  先check out 那个打出来的tag 的代码。 然后在那个目录下执行 mvn clean deploy 就可以发布jar 到 nexus 上面了。  

 

 

 

分享到:
评论

相关推荐

    最新Maven-apache-maven-3.8.1-Repository-配置好的

    Maven 是一个强大的项目管理和构建工具,主要应用于Java开发领域。它通过使用一种标准化的项目对象模型(Project Object Model,POM),可以帮助开发者管理项目的依赖、构建过程以及报告。Apache Maven 3.8.1是Maven...

    Maven仓库apache-maven-3.2.5

    Apache Maven 是一个强大的项目管理工具,它主要用于Java项目的构建、依赖管理和项目信息管理。Maven 3.2.5是该工具的一个版本,发布于2014年,旨在提高构建效率,增强稳定性,并修复了前一版本的一些已知问题。 在...

    maven安装包apache-maven-3.3.9.zip

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM),能够管理项目的构建、报告和文档等过程。Maven 的出现极大地简化了Java开发过程中的依赖管理和...

    apache-maven-3.8.6-bin.zip

    与较旧的构建工具(例如Ant)(同样也是Apache项目)相比,Maven为开发人员提供了一种标准的方法来构建项目,对项目所包含的项目进行清晰的定义,发布项目信息的简便方法以及易于管理的项目项目库依赖项。...

    Mac的maven安装包apache-maven-3.6.3.zip

    在IT行业中,Maven是一个非常重要的工具,尤其对于Java开发者来说,它是项目管理和构建的首选。本篇将详细讲解如何在Mac系统上,特别是配备M1芯片的MacBook上安装Apache Maven 3.6.3。 Apache Maven是一个基于项目...

    maven.rar apache-maven-3.5.4

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM),能够管理项目的构建、报告和文档,通过一套统一的构建生命周期和插件系统,极大地简化了软件...

    apache-maven-3.8.8-bin

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。它基于项目对象模型(Project Object Model,POM),能够管理项目的构建、报告和依赖关系。Maven 的目标是简化项目构建过程,通过标准化...

    apache-maven-3.9.6-bin

    Apache Maven 是一个强大的项目管理工具,广泛用于Java应用程序的构建、管理和依赖管理。Maven 3.9.6 是该工具的一个稳定版本,提供了一系列改进和优化,旨在提高开发效率和构建过程的可靠性。 Maven 使用一个约定...

    maven压缩包,apache-maven-3.3.9 ,apache-maven-3.5.3,apache-maven-3.6.1

    Apache Maven 是一个强大的项目管理工具,它主要用于构建、管理和聚合Java项目。这个压缩包包含了Apache Maven的三个不同版本:3.3.9、3.5.3和3.6.1,这些都是Maven的重要里程碑版本。 1. **Maven 3.3.9**: Maven...

    maven-compiler-plugin-2.0.2.jar.zip

    在Java开发领域,Maven作为一个强大的项目管理和构建工具,极大地简化了项目的构建过程。而Maven的核心就在于其插件系统,其中maven-compiler-plugin是极其关键的一环,它是负责Java源代码编译的插件。本文将详细...

    apache-maven-3.3.9版本.zip

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM)的概念,能够管理项目的构建、报告和依赖关系。Maven 的目标是简化项目构建过程,通过标准化构建...

    使用Maven控件proguard-maven-plugin给可执行jar文件混淆

    `proguard-maven-plugin`是Maven社区提供的一个插件,它集成了ProGuard的功能,使得在Maven项目中使用ProGuard变得更加方便。 要使用`proguard-maven-plugin`,我们需要在项目的`pom.xml`文件中添加插件配置。以下...

    maven-archetype-3.1.2-source-release.zip

    《 Maven 深度解析:基于maven-archetype-3.1.2-source-release的实践与探索》 Maven,作为Java世界中广受...通过不断的实践和探索,我们可以更好地利用Maven解决开发中的各种问题,实现更加灵活和高效的项目管理。

    apache-maven-3.3.9

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM)的概念,能够管理项目的构建、报告和文档,极大地简化了软件开发过程。Maven 3.3.9是该工具的一...

    apache-maven-4.0.0-beta-3-src

    Maven是一个广泛使用的项目管理和构建工具,用于自动化构建、依赖管理和项目报告生成。 Maven的目标是提供一个声明式的项目对象模型(Project Object Model,POM),通过POM文件来管理项目的构建过程。POM文件定义...

    apache-maven-3.2.3-bin.zip

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。Maven 使用一种标准化的项目对象模型(Project Object Model,POM),通过依赖管理和项目生命周期的概念,使得构建、配置和管理Java项目...

    apache-maven-3.6.3安装包

    Apache Maven 是一个强大的Java项目管理和综合工具,它简化了构建过程,通过标准化项目结构和自动化构建生命周期。在本文中,我们将深入探讨Maven的核心概念、安装步骤以及如何在实际项目中使用它。 **Maven核心...

    apache-maven-3.8.5-bin.zip

    Apache Maven 是一个强大的Java项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念,能够自动化构建、依赖管理和项目信息管理。Maven 3.8.5 是该工具的一个版本,提供了许多增强的功能和修复了...

    apache-maven-3.3.3.zip

    总之,Apache Maven 3.3.3是一个功能强大的工具,它通过统一的项目管理和构建方式,简化了Java开发过程中的许多繁琐工作。无论是小型项目还是大型企业级应用,Maven都能提供高效且可靠的解决方案。通过深入理解和...

Global site tag (gtag.js) - Google Analytics