MAVEN发布RELEASE包到私库

 

关于发布正式库到私库

关于ssl

目前私库地址使用了https协议对外提供访问,maven客户端需要检查ssl证书。但是openjdk没有提供ssl相关的组件,所以最快的方式我们需要使用oraclejdk来进行版本的发布。

如果非要使用openjdk需要添加参数,比如:mvn deploy -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.test.skip=true

以下所说的都是使用oracle jdk进行发布正式版的操作步骤

修改pom.xml

  1. 添加仓库信息
<distributionManagement>
    <snapshotRepository>
        <id>hfvast-net-snapshots</id>
        <url>https://nexus.hfvast.net/repository/snapshots/</url>
        <uniqueVersion>false</uniqueVersion>
    </snapshotRepository>
    <repository>
        <id>hfvast-net-releases</id>
        <url>https://nexus.hfvast.net/repository/releases/</url>
        <uniqueVersion>true</uniqueVersion>
    </repository>
</distributionManagement>
  1. settings.xml添加账户认证的信息(略)
  2. 添加scm版本库地址信息
<scm>
    <developerConnection>scm:git:ssh://git.hfvast.net/yanfa/aaa.git</developerConnection>
    <tag>HEAD</tag>
</scm>
  1. 添加release插件
<plugin>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.5.3</version>
    <configuration>
        <!-- 自动修改子模块的版本号 -->
        <autoVersionSubmodules>true</autoVersionSubmodules>
        <tagNameFormat>@{version}</tagNameFormat>
    </configuration>
</plugin>

提交所有代码,本地不能有未提交的代码

release:prepare

# -Darguments="-DskipTests" 不进行测试 这里使用 -Dmaven.test.skip=true 是无效的 注意:正常发布是不应该跳过测试的。
# -Dresume=false 暂时还未知什么作用,但是不加此参数,下一步maven会异常报错。exit code 1
# 参考链接 https://stackoverflow.com/questions/2325165/maven-releaseperform-failed
mvn release:prepare -Darguments="-DskipTests" -Dresume=false

顺利话会提问你要发布的RELEASE版本的版本号、git版本库中tag名称、下一个快照版本的版本号,输入后enter就好。

release:perform

# -DuseReleaseProfile=false 
# 在执行mvn release:perform时默认会生成api文档,如果默写注释不符合规范的话会造成构建失败,可以加参数-DuseReleaseProfile=false取消构建api文档,或则需要根据规范书写注释。
mvn release:perform -DuseReleaseProfile=false 

release:rollback

如果在构建过程中出现错误,rollback回滚即可

mvn release:rollback

Apache Maven Release Plugin插件详解