初识 maven 自动化发布

mvn deploy 配置

maven settings.xml 文件中添加如下配置,用来在 deploy 项目时跟仓库做认证,其中 <server> 标签中的 id 必须跟 pom.xml 文件中 <distributionManagement> 下仓库的 id 一致:

<server>
    <id>releases</id>
    <username>admin</username>
    <password>123456</password>
</server>
<server>
    <id>snapshots</id>
    <username>admin</username>
    <password>123456</password>
</server>

项目的 pom.xml 文件中添加如下配置:

<distributionManagement>
    <!-- 项目 release 版本发布仓库地址 -->
    <repository>
        <id>releases</id>
        <name>Release Repository</name>
        <url>http://localhost:8081/nexus/content/repositories/releases/</url>
    </repository>
    <!-- 项目 snapshot 版本发布仓库地址 -->
    <snapshotRepository>
        <id>snapshots</id>
        <name>Snapshots Repository</name>
        <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

发布

配置完成之后执行以下命令就能将项目发布到指定的仓库中:

mvn clean deploy

mvn release 配置

maven 提供了发布项目 release 版本的插件,在上面的配置基础上再增加以下配置即可启用:

<scm>
    <!-- 只读项目地址 -->
    <connection>scm:git:git@gitee.com:example/example.git</connection>
    <!-- 可读写项目地址 -->
    <developerConnection>scm:git:git@gitee.com:example/example.git</developerConnection>
    <!-- 项目查看地址 -->
    <url>http://gitee.com/example/example</url>
    <!-- 指定项目当前所处 tag,HEAD 需要作为默认值 -->
    <tag>HEAD</tag>
</scm>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.3</version>
            <configuration>
                <!-- 发布 release 版本时提交内容的前缀,主要是为了符合版本管理中的提交规范 -->
                <scmCommentPrefix>release(all):</scmCommentPrefix>
                <!-- 发布 release 时 tag 名称的格式定义 -->
                <tagNameFormat>v@{project.version}</tagNameFormat>
                <!-- 子模块使用与父模块一致的发布版本和新的 SNAPSHOT 版本 -->
                <autoVersionSubmodules>true</autoVersionSubmodules>
                <!-- 标签基础目录 -->
                <tagBase>http://gitee.com/example/example/tags</tagBase>
            </configuration>
        </plugin>
    </plugins>
</build>

发布 release

在项目 pom.xml 文件中添加以上配置之后就可以使用 maven release 插件发布项目了。

  1. 准备发布版本,如果检测到有未提交的代码或者 snapshot 版本的依赖会报错,正常情况下会提示用户输入想要发布的版本号,标签名称以及最新的快照版本

    mvn release:prepare
    
  2. 如果上一步发现有信息填错可以使用 rollback 命令回滚,有一点要注意,git 中的标签不会删除,需要手动删除本地和远程的标签

    mvn release:rollback
    
  3. 如果 prepare 没有问题则执行将刚生成的标签中的代码 deploy 到仓库中

    mvn release:perform
    
posted @ 2020-08-13 17:14  牧码的羊  阅读(349)  评论(0编辑  收藏  举报