关键步骤: 1. 申请OSS账号 2. 通过gpg创建密钥 3. 完善setting.xml和pom.xml 4. 发布审核
选择 Community Support - Open Source 下的 New Project
填入 Group Id 、 Project URL 、 SCM url (SVN 或者 GIT地址) 信息
当发现有人回复 Configuration has been prepared, now you can ,说明审核通过
需要注意如下重要内容
snapshotRepository
repository
1
2
3
4
5
6
7
8
9
10
<code>Configuration has been prepared, now you can:</code>
<code> </code><code># snapshotRepository:该地址将会被用在pom.xml中的distributionManagement中的snapshotRepository的url</code>
<code> </code><code>Deploy snapshot artifacts into repository https:</code><code>//oss</code><code>.sonatype.org</code><code>/content/repositories/snapshots</code>
<code> </code><code># repository:该地址将会被用在pom.xml中的distributionManagement中的repository的url</code>
<code> </code><code>Deploy release artifacts into the staging repository https:</code><code>//oss</code><code>.sonatype.org</code><code>/service/local/staging/deploy/maven2</code>
<code> </code>
<code>Promote staged artifacts into repository </code><code>'Releases'</code>
<code> </code><code>Download snapshot and release artifacts from group https:</code><code>//oss</code><code>.sonatype.org</code><code>/content/groups/public</code>
<code> </code><code>Download snapshot, release and staged artifacts from staging group https:</code><code>//oss</code><code>.sonatype.org</code><code>/content/groups/staging</code>
<code> </code><code>please comment on this ticket when you promoted your first release, thanks</code>
在Linux下就不用了,一般都会有 <code>gpg</code> 命令
11
12
13
<code># 创建公钥,创建时,会提示填入账号和邮箱</code>
<code>gpg --gen-key</code>
<code># 查看已有的公钥私钥</code>
<code>gpg --list-keys</code>
<code># 找到自己创建账号的私钥</code>
<code>pub 2048R/公钥内容 2014-05-28 </code>
<code>uid username<[email protected]></code>
<code>sub 2048R/私钥内容 2014-05-28</code>
<code># 发布公钥</code>
<code>gpg --keyserver hkp:</code><code>//pool</code><code>.sks-keyservers.net --send-keys 公钥内容</code>
<code>settings.xml</code> 是属于Maven的配置文件,可以通过这两个方法找到
全局的配置在 <code>$MAVEN_HOME/conf/settings.xml</code> 中找到,也就是Maven的安装位置
用户的配置在 用户目录 下的 <code>~/.m2/settings.xml</code> 中找到,例如 <code>C:/Users/用户名/.m2/settings.xml</code>, 当然,有可能不存在这个文件,那么就可以把全局配置复制到这里即可
在<code>servers</code>添加账号
<code><</code><code>servers</code><code>></code>
<code> </code><code>...</code>
<code> </code><code><</code><code>server</code><code>></code>
<code> </code><code><</code><code>id</code><code>>oss</</code><code>id</code><code>></code>
<code> </code><code><</code><code>username</code><code>>账号</</code><code>username</code><code>></code>
<code> </code><code><</code><code>password</code><code>>密码</</code><code>password</code><code>></code>
<code> </code><code></</code><code>server</code><code>></code>
<code></</code><code>servers</code><code>></code>
为<code>pm.xml</code>中添加<code>description</code>,<code>licenses</code>, <code>developers</code> ,<code>scm</code>以及<code>profiles</code>
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<code><</code><code>description</code><code>>Validation Framework for Java Development</</code><code>description</code><code>></code>
<code><</code><code>licenses</code><code>></code>
<code> </code><code><</code><code>license</code><code>></code>
<code> </code><code><</code><code>name</code><code>>MIT</</code><code>name</code><code>></code>
<code> </code><code><</code><code>url</code><code>>http://mit-license.org/</</code><code>url</code><code>></code>
<code> </code><code></</code><code>license</code><code>></code>
<code></</code><code>licenses</code><code>></code>
<code><</code><code>developers</code><code>></code>
<code> </code><code><</code><code>developer</code><code>></code>
<code> </code><code><</code><code>name</code><code>>姓名</</code><code>name</code><code>></code>
<code> </code><code><</code><code>email</code><code>>邮箱</</code><code>email</code><code>></code>
<code> </code><code></</code><code>developer</code><code>></code>
<code></</code><code>developers</code><code>></code>
<code><</code><code>scm</code><code>></code>
<code> </code><code><</code><code>connection</code><code>>scm:[email protected]:41zone/Validation.FO.git</</code><code>connection</code><code>></code>
<code> </code><code><</code><code>developerConnection</code><code>>scm:[email protected]:41zone/Validation.FO.git</</code><code>developerConnection</code><code>></code>
<code> </code><code><</code><code>url</code><code>>[email protected]:41zone/Validation.FO.git</</code><code>url</code><code>></code>
<code></</code><code>scm</code><code>></code>
<code><</code><code>profiles</code><code>></code>
<code> </code><code><</code><code>profile</code><code>></code>
<code> </code><code><</code><code>id</code><code>>release</</code><code>id</code><code>></code>
<code> </code><code><</code><code>distributionManagement</code><code>></code>
<code> </code><code><!-- 初步审核通过后,会给你这个内容,在上面已经给出 --></code>
<code> </code><code><</code><code>snapshotRepository</code><code>></code>
<code> </code><code><</code><code>id</code><code>>oss</</code><code>id</code><code>></code>
<code> </code><code><</code><code>url</code><code>>https://oss.sonatype.org/content/repositories/snapshots/</</code><code>url</code><code>></code>
<code> </code><code></</code><code>snapshotRepository</code><code>></code>
<code> </code><code><</code><code>repository</code><code>></code>
<code> </code><code><</code><code>url</code><code>>https://oss.sonatype.org/service/local/staging/deploy/maven2/</</code><code>url</code><code>></code>
<code> </code><code></</code><code>repository</code><code>></code>
<code> </code><code></</code><code>distributionManagement</code><code>></code>
<code> </code><code><</code><code>build</code><code>></code>
<code> </code><code><</code><code>plugins</code><code>></code>
<code> </code><code><!-- Source --></code>
<code> </code><code><</code><code>plugin</code><code>></code>
<code> </code><code><</code><code>groupId</code><code>>org.apache.maven.plugins</</code><code>groupId</code><code>></code>
<code> </code><code><</code><code>artifactId</code><code>>maven-source-plugin</</code><code>artifactId</code><code>></code>
<code> </code><code><</code><code>version</code><code>>2.2.1</</code><code>version</code><code>></code>
<code> </code><code><</code><code>executions</code><code>></code>
<code> </code><code><</code><code>execution</code><code>></code>
<code> </code><code><</code><code>phase</code><code>>package</</code><code>phase</code><code>></code>
<code> </code><code><</code><code>goals</code><code>></code>
<code> </code><code><</code><code>goal</code><code>>jar-no-fork</</code><code>goal</code><code>></code>
<code> </code><code></</code><code>goals</code><code>></code>
<code> </code><code></</code><code>execution</code><code>></code>
<code> </code><code></</code><code>executions</code><code>></code>
<code> </code><code></</code><code>plugin</code><code>></code>
<code> </code><code><!-- Javadoc --></code>
<code> </code><code><</code><code>artifactId</code><code>>maven-javadoc-plugin</</code><code>artifactId</code><code>></code>
<code> </code><code><</code><code>version</code><code>>2.9.1</</code><code>version</code><code>></code>
<code> </code><code><</code><code>goal</code><code>>jar</</code><code>goal</code><code>></code>
<code> </code><code><</code><code>artifactId</code><code>>maven-gpg-plugin</</code><code>artifactId</code><code>></code>
<code> </code><code><</code><code>version</code><code>>1.5</</code><code>version</code><code>></code>
<code> </code><code><</code><code>id</code><code>>sign-artifacts</</code><code>id</code><code>></code>
<code> </code><code><</code><code>phase</code><code>>verify</</code><code>phase</code><code>></code>
<code> </code><code><</code><code>goal</code><code>>sign</</code><code>goal</code><code>></code>
<code> </code><code></</code><code>plugins</code><code>></code>
<code> </code><code></</code><code>build</code><code>></code>
<code> </code><code></</code><code>profile</code><code>></code>
<code></</code><code>profiles</code><code>></code>
如果通过Eclipse进行执行可能会出问题,所以可以通过命令行进行操作
<code>mvn clean deploy -P release -Dgpg.passphrease=公钥内容</code>
左侧点击 Staging Repositories
会发现有以 <code>GroupID - XXXX</code> 格式的记录,例如 <code>ccfozonevalidation-1000</code>,选中后,选择上方的 <code>Close</code>
稍等一会儿进行刷新,如果在下方的 <code>Summary</code> 中的 <code>Activity</code> 出现 红色 标识,说明有错误,点击旁边的 <code>Activity</code> 进行查看 红色 标识的内容
按照操作,之后再进行 G 步骤操作,直到成功 <code>Activity</code> 为 绿色 标识
此时选择上方的 <code>Release</code> ,进行正式发布
发布成功后,进入之前创建的Issue,添加Comment,说已经成功了,可以写 <code>My Project </code><code>has been successfully released.</code>
本文转自 sundunjam 51CTO博客,原文链接:http://blog.51cto.com/sunspot/1560907,如需转载请自行联系原作者