Loading... ## Sonatype注册 1.注册sonatype账号 https://issues.sonatype.org/secure/Signup!default.jspa 2.创建一个issue https://issues.sonatype.org/secure/CreateIssue!default.jsp  > 点击 Create 之后,会跳转至一个 jira 页面 (sonatype 使用jira 来追踪每一个项目进度),同时会发送一封邮件进行提醒,任务创建成功,正在等待处理。  > 等待一段时间,当状态变为已解决时即可,如果使用的是自己的域名,可能会被要求添加一条txt解析记录来验证域名的所有权,请留意活动日志内的注释栏  ## GPG安装与配置 此处以MacOS举例,其它操作系统请自行查找资料 ```shell # 安装gpg brew install gpg # 执行此命令查看是否安装成功 gpg --version ``` 一些常用的命令 ```shell # 查看安装版本,以及是否安装成功 gpg --version # 生成密钥对 gpg --gen-key # 查看公钥 gpg --list-keys # 公钥ID 将公钥发布到 PGP 密钥服务器 gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys # 公钥ID 查询公钥是否发布成功 gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys ``` 创建密钥对并发布 ```shell # 生成密钥对,根据提示输入姓名,邮箱,密码等,这里将密码记录下来,后面需要用到 gpg --gen-key # 查看公钥列表,并复制下图圈出来的公钥ID,替换发布公钥--send-keys参数的值 gpg --list-keys # 发布公钥 gpg --keyserver http://keyserver.ubuntu.com:11371 --send-keys 94C78FF90E7AE20205CE157A2BBBD1547C6B6B73 gpg --keyserver http://keys.openpgp.org:11371 --send-keys 94C78FF90E7AE20205CE157A2BBBD1547C6B6B73 # 验证是否发布成功 gpg --keyserver http://keyserver.ubuntu.com:11371 --recv-keys 94C78FF90E7AE20205CE157A2BBBD1547C6B6B73 gpg --keyserver http://keys.openpgp.org:11371 --recv-keys 94C78FF90E7AE20205CE157A2BBBD1547C6B6B73 ```  ## Maven配置 编辑Maven的settings.xml,并添加如下内容 ```xml <servers> <server> <id>ossrh</id> <username>Sonatype Account</username> <password>Sonatype Password</password> </server> </servers> ``` ## 项目配置 >Sonatype的要求参考: https://central.sonatype.org/pages/requirements.html Sonatype提供的pom文件demo:https://github.com/simpligility/ossrh-demo/blob/master/pom.xml ```xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mikuac</groupId> <artifactId>shiro</artifactId> <version>1.0.0</version> <name>Shiro</name> <url>https://mikuac.com</url> <description>基于OneBot协议的SpringBoot快速开发框架</description> <properties> <java.version>15</java.version> <maven.compiler.source>15</maven.compiler.source> <maven.compiler.target>15</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <scm> <connection>scm:git:git://github.com/MisakaTAT/Shiro.git</connection> <developerConnection>scm:git:ssh://github.com/MisakaTAT/Shiro.git</developerConnection> <url>https://github.com/MisakaTAT/Shiro/tree/main</url> </scm> <!-- snapshotRepository与repository中的id一定要与maven setting.xml中server的id保持一致! --> <distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <developers> <developer> <name>MisakaTAT</name> <email>i@mikuac.com</email> </developer> </developers> <licenses> <license> <name>GNU General Public License v3.0</name> <url>https://github.com/MisakaTAT/Shiro/blob/main/LICENSE</url> <distribution>repo</distribution> </license> </licenses> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.3.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <dependencies> </dependencies> </project> ``` ## 发布 ``` # 进入到项目目录执行发布命令 mvn clean deploy -DskipTests # 上传完成后登录 https://s01.oss.sonatype.org/#stagingRepositories 选择上传的项目,点击close,等待验证通过后点击release即可 ``` >发布完成后登录 https://s01.oss.sonatype.org 可以查看到自己发布的项目,此时还无法在中央仓库找到,需要等待同步。   ## 问题 如果是直接在idea内点击deploy的话会无法弹出gpg的密码输入框,导致签名失败  gpg: signing failed: Inappropriate ioctl for device ``` export GPG_TTY=$(tty) ``` 最后修改:2021 年 08 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏