准备工作

  1. GitHub上传项目

  2. 注册https://issues.sonatype.org账号

  3. 安装OpenGPG,通过GnuGPG来

创建一个公钥  记住Passphase

1
   gpg --gen-key 

上传公钥

1
2
3
    gpg --keyserver hkp://keyserver.ubuntu.com --send-keys keyId
    
    gpg --keyserver hkp://pool.sks-keyservers.net --send-keys keyId

查看是否上传成功

1
2
   gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys keyId
   gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys keyId
  1. 配置Maven setting.xml

    1
    2
    3
    4
    5
    6
    7
    
    <servers>
           <server>
               <id>oss</id>
               <username>snoatype注册的用户名</username>
               <password>snoatype注册的密码</password>
           </server>
       </servers>
  2. 配置项目pom

项目信息

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
   licenses>
           <license>
               <name>The Apache License, Version 2.0</name>
               <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
           </license>
       </licenses>
       <developers>
           <developer>
               <name>binbean</name>
               <email>******@gmail.com</email>
               <roles>
                   <role>developer</role>
               </roles>
               <timezone>+8</timezone>
           </developer>
       </developers>
       <scm>

编译信息

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
   <profiles>
           <profile>
           <id>release</id>
           <build>
               <plugins>
                   <!-- Source -->
                   <plugin>
                       <groupId>org.apache.maven.plugins</groupId>
                       <artifactId>maven-source-plugin</artifactId>
                       <!--
                       <version>2.2.1</version>
                       -->
                       <executions>
                           <execution>
                               <phase>package</phase>
                               <goals>
                                   <goal>jar-no-fork</goal>
                               </goals>
                           </execution>
                       </executions>
                   </plugin>
                   <!-- Javadoc -->
                   <plugin>
                       <groupId>org.apache.maven.plugins</groupId>
                       <artifactId>maven-javadoc-plugin</artifactId>
                       <!--
                       <version>2.9.1</version>
                       -->
                       <executions>
                           <execution>
                               <phase>package</phase>
                               <goals>
                                   <goal>jar</goal>
                               </goals>
                           </execution>
                       </executions>
                   </plugin>
                   <!-- GPG -->
                   <plugin>
                       <groupId>org.apache.maven.plugins</groupId>
                       <artifactId>maven-gpg-plugin</artifactId>
                       <!--
                       <version>1.5</version>
                       -->
                       <executions>
                           <execution>
                               <phase>verify</phase>
                               <goals>
                                   <goal>sign</goal>
                               </goals>
                           </execution>
                       </executions>
                   </plugin>
               </plugins>
           </build>

提交发布申请

创建一个issue

  • Project: Community support

  • Issue Type:➕New Project

  • Username:snoatype注册的用户名

  • 其它信息如实填写

上传构件

  1. 会要求输入前面的passphrase

    1
    
    mvn clean deploy -P release
  2. 在oss中发布构件

构建上传之后需要在OSS系统中对操作进行确认,将构件发布,进入https://oss.sonatype.org/使用你的用户名和密码登陆之后,在左边菜单找到“Staging Repositories”,点击,在右边上面一点有一个输入搜索框输入你的groupid进行快速定位,可以发现这时你的构件状态是“open”,勾选你的构件,查看校验的结果信息,如果没有错误就可以点击刚才勾选的checkbox上面右边一点的“close”按钮,在弹出框中“confirm”,这里又需要校验一次,稍后结果会通过邮箱通知。

等成功后(系统自动进行,很快的),再次登录系统找到你的构件,这是状态已经是“closed”的了,再次勾选,然后点击“close”旁边的“release”,在弹出框中进行“confirm”,稍后结果会通过邮件进行通知。

  1. 通知snoatype工作人员关闭issue

回复说明构建已经发布

1
   I released the component had been successfully, please approval ,thanks.
  1. 使用构件

一切完成后并不可以马上就使用你所发布的issue,得等系统将你的构件同步到中央仓库之后才可以使用,这个时间至少要2个小时,然后就可以在中央仓库的搜索页面(http://search.maven.org/)搜到啦