文章目录
- 1. github上传代码
- 2. sonatype新建账号
- 3. sonatype提交发布申请
- 4. 生成pgp公钥
- 5. 配置settings.xml
- 6. 配置pom.xml
- 7. 发布
Maven项目上传公共仓库是我见过最麻烦的(相比npm和pypi)
文档:https://central.sonatype.org/pages/apache-maven.html
准备好maven项目 + Hello类
package com.mouday;
public class Hello {
public void sayHello(){
System.out.println("Hello");
}
}
1. github上传代码
https://github.com/ eg: https://github.com/mouday/hello-package
2. sonatype新建账号https://issues.sonatype.org/secure/Signup!default.jspa
3. sonatype提交发布申请等待审核,状态变为RESOLVED已处理 eg: https://issues.sonatype.org/browse/OSSRH-59604
如果是自己的域名,需要认证
设置txt记录后可以进行检查
$ nslookup -q=txt ossrh-59604.mouday.com
ossrh-59604.mouday.com text = "https://issues.sonatype.org/browse/OSSRH-59604"
4. 生成pgp公钥
# 查看gpg是否安装
gpg --version
# 生成key
gpg --gen-key
# 查询key
gpg --list-keys
# 公钥id发布到GPG服务器
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys
# 查询,可能需要等待一会
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys
5. 配置settings.xml
~/.m2/settings.xml
ossrh
OSSRH-USERNAME
OSSRH-PASSWORD
jdk-1.8
true
1.8
1.8
1.8
1.8
gpg
GPG-PASSWORD
6. 配置pom.xml
4.0.0
com.mouday
hello-package
1.0
hello-package
https://github.com/mouday/hello-package
a maven package demo for my first java
The Apache Software License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0.txt
repo
scm:https://github.com/mouday/hello-package.git
scm:https://github.com/mouday/hello-package.git
https://github.com/mouday/hello-package
mouday
pengshiyuyx@gmail.com
mouday.com
+8
ossrh
https://oss.sonatype.org/content/repositories/snapshots
ossrh
Nexus Release Repository
http://oss.sonatype.org/service/local/staging/deploy/maven2/
org.apache.maven.plugins
maven-jar-plugin
jar
test-jar
org.apache.maven.plugins
maven-source-plugin
attach-sources
jar-no-fork
org.apache.maven.plugins
maven-javadoc-plugin
-Xdoclint:none
attach-javadocs
jar
org.apache.maven.plugins
maven-gpg-plugin
sign-artifacts
verify
sign
org.sonatype.plugins
nexus-staging-maven-plugin
1.6.3
true
ossrh
https://oss.sonatype.org/
true
7. 发布
mvn clean deploy
如果报错可查看解决方式:
signing failed: Inappropriate ioctl for device
过大概2个小时就能在仓库中搜索到自己发布的项目了
https://search.maven.org/ 第二天上午,我能在 https://mvnrepository.com/ 搜索到自己的项目了
等待很久之后,就可以在maven项目中使用了
com.mouday
hello-package
1.0
好难…
参考
- 如何将自己的代码发布到Maven中央仓库?
- 记一次非Maven项目发布到中央仓库爬过的坑!
- 发布构件到 Maven 中央仓库遇到的坑