天天看點

【狂人小白】如何将Java項目釋出到Maven中

關鍵步驟: 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&lt;[email protected]&gt;</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>&lt;</code><code>servers</code><code>&gt;</code>

<code>    </code><code>...</code>

<code>    </code><code>&lt;</code><code>server</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>id</code><code>&gt;oss&lt;/</code><code>id</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>username</code><code>&gt;賬号&lt;/</code><code>username</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>password</code><code>&gt;密碼&lt;/</code><code>password</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>server</code><code>&gt;</code>

<code>&lt;/</code><code>servers</code><code>&gt;</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>&lt;</code><code>description</code><code>&gt;Validation Framework for Java Development&lt;/</code><code>description</code><code>&gt;</code>

<code>&lt;</code><code>licenses</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>license</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>name</code><code>&gt;MIT&lt;/</code><code>name</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>url</code><code>&gt;http://mit-license.org/&lt;/</code><code>url</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>license</code><code>&gt;</code>

<code>&lt;/</code><code>licenses</code><code>&gt;</code>

<code>&lt;</code><code>developers</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>developer</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>name</code><code>&gt;姓名&lt;/</code><code>name</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>email</code><code>&gt;郵箱&lt;/</code><code>email</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>developer</code><code>&gt;</code>

<code>&lt;/</code><code>developers</code><code>&gt;</code>

<code>&lt;</code><code>scm</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>connection</code><code>&gt;scm:[email protected]:41zone/Validation.FO.git&lt;/</code><code>connection</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>developerConnection</code><code>&gt;scm:[email protected]:41zone/Validation.FO.git&lt;/</code><code>developerConnection</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>url</code><code>&gt;[email protected]:41zone/Validation.FO.git&lt;/</code><code>url</code><code>&gt;</code>

<code>&lt;/</code><code>scm</code><code>&gt;</code>

<code>&lt;</code><code>profiles</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>profile</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>id</code><code>&gt;release&lt;/</code><code>id</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>distributionManagement</code><code>&gt;</code>

<code>            </code><code>&lt;!-- 初步稽核通過後,會給你這個内容,在上面已經給出 --&gt;</code>

<code>            </code><code>&lt;</code><code>snapshotRepository</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>id</code><code>&gt;oss&lt;/</code><code>id</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>url</code><code>&gt;https://oss.sonatype.org/content/repositories/snapshots/&lt;/</code><code>url</code><code>&gt;</code>

<code>            </code><code>&lt;/</code><code>snapshotRepository</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>repository</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>url</code><code>&gt;https://oss.sonatype.org/service/local/staging/deploy/maven2/&lt;/</code><code>url</code><code>&gt;</code>

<code>            </code><code>&lt;/</code><code>repository</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>distributionManagement</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>build</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>plugins</code><code>&gt;</code>

<code>                </code><code>&lt;!-- Source --&gt;</code>

<code>                </code><code>&lt;</code><code>plugin</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>groupId</code><code>&gt;org.apache.maven.plugins&lt;/</code><code>groupId</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>artifactId</code><code>&gt;maven-source-plugin&lt;/</code><code>artifactId</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>version</code><code>&gt;2.2.1&lt;/</code><code>version</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>executions</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>execution</code><code>&gt;</code>

<code>                            </code><code>&lt;</code><code>phase</code><code>&gt;package&lt;/</code><code>phase</code><code>&gt;</code>

<code>                            </code><code>&lt;</code><code>goals</code><code>&gt;</code>

<code>                                </code><code>&lt;</code><code>goal</code><code>&gt;jar-no-fork&lt;/</code><code>goal</code><code>&gt;</code>

<code>                            </code><code>&lt;/</code><code>goals</code><code>&gt;</code>

<code>                        </code><code>&lt;/</code><code>execution</code><code>&gt;</code>

<code>                    </code><code>&lt;/</code><code>executions</code><code>&gt;</code>

<code>                </code><code>&lt;/</code><code>plugin</code><code>&gt;</code>

<code>                </code><code>&lt;!-- Javadoc --&gt;</code>

<code>                    </code><code>&lt;</code><code>artifactId</code><code>&gt;maven-javadoc-plugin&lt;/</code><code>artifactId</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>version</code><code>&gt;2.9.1&lt;/</code><code>version</code><code>&gt;</code>

<code>                                </code><code>&lt;</code><code>goal</code><code>&gt;jar&lt;/</code><code>goal</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>artifactId</code><code>&gt;maven-gpg-plugin&lt;/</code><code>artifactId</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>version</code><code>&gt;1.5&lt;/</code><code>version</code><code>&gt;</code>

<code>                            </code><code>&lt;</code><code>id</code><code>&gt;sign-artifacts&lt;/</code><code>id</code><code>&gt;</code>

<code>                            </code><code>&lt;</code><code>phase</code><code>&gt;verify&lt;/</code><code>phase</code><code>&gt;</code>

<code>                                </code><code>&lt;</code><code>goal</code><code>&gt;sign&lt;/</code><code>goal</code><code>&gt;</code>

<code>            </code><code>&lt;/</code><code>plugins</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>build</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>profile</code><code>&gt;</code>

<code>&lt;/</code><code>profiles</code><code>&gt;</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,如需轉載請自行聯系原作者