关于发布正式库到私库
关于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
- 添加仓库信息
<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>
- settings.xml添加账户认证的信息(略)
- 添加scm版本库地址信息
<scm>
<developerConnection>scm:git:ssh://git.hfvast.net/yanfa/aaa.git</developerConnection>
<tag>HEAD</tag>
</scm>
- 添加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