【狂人小白】如何将Java项目发布到Maven中
將Java項目發布到Maven中
如何通過Sonatype進行發布Maven操作,并且能夠在http://search.maven.org?中搜索到
關鍵步驟:
1. 申請OSS賬號
2. 通過gpg創建密鑰
3. 完善setting.xml和pom.xml
4. 發布審核
A. 申請Sonatype賬號
注冊地址:?https://issues.sonatype.org/secure/Signup!default.jspa
B. 創建Issue
創建地址:?https://issues.sonatype.org/secure/Dashboard.jspa,點擊?Create Issue
選擇?Community Support - Open Source?下的?New Project
填入?Group Id?、?Project URL?、?SCM url (SVN 或者 GIT地址)?信息
C. 等待審核
當發現有人回復?Configuration has been prepared, now you can?,說明審核通過
需要注意如下重要內容
-
snapshotRepository
-
repository
| 1 2 3 4 5 6 7 8 9 10 | Configuration?has?been?prepared,?now?you?can: ????#?snapshotRepository:該地址將會被用在pom.xml中的distributionManagement中的snapshotRepository的url ????Deploy?snapshot?artifacts?into?repository?https://oss.sonatype.org/content/repositories/snapshots ????#?repository:該地址將會被用在pom.xml中的distributionManagement中的repository的url ????Deploy?release?artifacts?into?the?staging?repository?https://oss.sonatype.org/service/local/staging/deploy/maven2 ????? Promote?staged?artifacts?into?repository?'Releases' ????Download?snapshot?and?release?artifacts?from?group?https://oss.sonatype.org/content/groups/public ????Download?snapshot,?release?and?staged?artifacts?from?staging?group?https://oss.sonatype.org/content/groups/staging ????please?comment?on?this?ticket?when?you?promoted?your?first?release,?thanks |
D. 創建公鑰私鑰
如果在Windows下,你需要安裝?Cygwin, 不過為了一步到位,直接下載Git Bash就好了,這個GIT Bash就是Cypwin集成了Git而已
在Linux下就不用了,一般都會有?gpg?命令
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | #?創建公鑰,創建時,會提示填入賬號和郵箱 gpg?--gen-key #?查看已有的公鑰私鑰 gpg?--list-keys #?找到自己創建賬號的私鑰 pub 2048R/公鑰內容?2014-05-28? uid username<username@mail.com> sub 2048R/私鑰內容?2014-05-28 #?發布公鑰 gpg?--keyserver?hkp://pool.sks-keyservers.net?--send-keys?公鑰內容 |
E. 修改settings.xml
settings.xml?是屬于Maven的配置文件,可以通過這兩個方法找到
全局的配置在?$MAVEN_HOME/conf/settings.xml?中找到,也就是Maven的安裝位置
用戶的配置在 用戶目錄 下的?~/.m2/settings.xml?中找到,例如?C:/Users/用戶名/.m2/settings.xml,?當然,有可能不存在這個文件,那么就可以把全局配置復制到這里即可
在servers添加賬號
| 1 2 3 4 5 6 7 8 | <servers> ????... ????<server> ????????<id>oss</id> ????????????<username>賬號</username> ????????????<password>密碼</password> ????</server> </servers> |
F. 修改pom.xml
為pm.xml中添加description,licenses,?developers?,scm以及profiles
| 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 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 | <description>Validation?Framework?for?Java?Development</description> <licenses> ????<license> ????????<name>MIT</name> ????????<url>http://mit-license.org/</url> ????</license> </licenses> <developers> ????<developer> ????????<name>姓名</name> ????????<email>郵箱</email> ????</developer> </developers> <scm> ????<connection>scm:git@github.com:41zone/Validation.FO.git</connection> ????<developerConnection>scm:git@github.com:41zone/Validation.FO.git</developerConnection> ????<url>git@github.com:41zone/Validation.FO.git</url> </scm> <profiles> ????<profile> ????????<id>release</id> ????????<distributionManagement> ????????????<!--?初步審核通過后,會給你這個內容,在上面已經給出?--> ????????????<snapshotRepository> ????????????????<id>oss</id> ????????????????<url>https://oss.sonatype.org/content/repositories/snapshots/</url> ????????????</snapshotRepository> ????????????<!--?初步審核通過后,會給你這個內容,在上面已經給出?--> ????????????<repository> ????????????????<id>oss</id> ????????????????<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> ????????????</repository> ????????</distributionManagement> ????????<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> ????????????????<plugin> ????????????????????<groupId>org.apache.maven.plugins</groupId> ????????????????????<artifactId>maven-gpg-plugin</artifactId> ????????????????????<version>1.5</version> ????????????????????<executions> ????????????????????????<execution> ????????????????????????????<id>sign-artifacts</id> ????????????????????????????<phase>verify</phase> ????????????????????????????<goals> ????????????????????????????????<goal>sign</goal> ????????????????????????????</goals> ????????????????????????</execution> ????????????????????</executions> ????????????????</plugin> ????????????</plugins> ????????</build> ????</profile> </profiles> |
G. 發布到OSS中
如果通過Eclipse進行執行可能會出問題,所以可以通過命令行進行操作
| 1 | mvn?clean?deploy?-P?release?-Dgpg.passphrease=公鑰內容 |
H. 發布構建
進入?https://oss.sonatype.org/,這個加載會有些慢
左側點擊?Staging Repositories
會發現有以?GroupID - XXXX?格式的記錄,例如?ccfozonevalidation-1000,選中后,選擇上方的?Close
稍等一會兒進行刷新,如果在下方的?Summary?中的?Activity?出現?紅色?標識,說明有錯誤,點擊旁邊的?Activity?進行查看?紅色?標識的內容
按照操作,之后再進行?G?步驟操作,直到成功?Activity?為?綠色?標識
此時選擇上方的?Release?,進行正式發布
J. 最后的審核
發布成功后,進入之前創建的Issue,添加Comment,說已經成功了,可以寫?My Project?has been successfully released.
審核成功后,即可在?http://search.maven.org?中進行搜索我們的框架了
當然,你可以在OSS中預覽檢索你的組件,https://oss.sonatype.org/content/groups/public
本文轉自 sundunjam 51CTO博客,原文鏈接:http://blog.51cto.com/sunspot/1560907,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的【狂人小白】如何将Java项目发布到Maven中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第十七章 apache 性能调优
- 下一篇: 微软官方windows phone开发视