issues.sonatype.org/secure/Sign… php
以下注冊成功!issues.sonatype.org/secure/Dash… html
登陸成功進來以後可選擇本身喜歡的語言顯示~ 接下來的就是建立頭像等等了,這裏很少說進來以後以下: java
issues.sonatype.org/secure/Crea…git
建立以後以下,等待審覈...My issue : issues.sonatype.org/browse/OSSR…github
小編第一次建立後審覈失敗,現現在改爲以下,再看看是否成功吧~ 第二次審覈失敗,修改以下: 第三次審覈失敗,修改以下: 在第三次修改後,沒有任何回覆,這時我就從新建立了一個issue,以下審覈成功,此次審覈速度就很是快了,可能也就幾分鐘事後就經過了,以下Status狀態從OPEN變成了RESOLVED ~ issues.sonatype.org/secure/Crea…Status狀態從OPEN變成RESOLVED表示成功!apache
將jar包上傳到這裏,Release 以後就會同步到maven中央倉庫ubuntu
注:發佈到Maven倉庫中的全部文件都要使用GPG簽名,以保障完整性。安全
Windows系統下載地址: www.gpg4win.org/download.ht…bash
安裝很簡單,以下: 服務器
由於咱們只須要GnuPG,因此其它的能夠沒必要勾選 cmd執行以下命令驗證是否安裝成功:gpg --version
複製代碼
cmd執行以下命令:
gpg --gen-key
複製代碼
【注】輸入的 Passphrase 值至關於密鑰的密碼,後面會用到!!
若是ok以後出現以下界面,是提示密碼安全度不高,須要包含至少一個數字或特殊字符~ 從新輸入一下便可 ok以後,咱們的密鑰對就設置好了 【注】,下圖中的 448854BCFF61E7F7 至關於咱們生成的key,後面要用到!!目的:將公鑰上傳到公共的密鑰服務器(也就是上傳到第三方的key驗證庫)讓其餘人能夠經過公鑰來驗證jar包的完整性
查看公鑰
gpg --list-keys
複製代碼
其中3408AAAFEE3AB847DE82602B448854BCFF61E7F7爲公鑰ID
將公鑰或key發佈到 PGP 密鑰服務器(注:這裏我暫時未發現有何區別~)gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 公鑰ID或上面提到的key
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公鑰ID或上面提到的key
複製代碼
查詢公鑰是否發佈成功
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 公鑰ID或上面提到的key
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 公鑰ID或上面提到的key
複製代碼
<servers>
<!-- 上傳jar包到maven中央倉庫配置start -->
<server>
<id>ossrh</id>
<username>Sonatype帳號</username>
<password>Sonatype密碼</password>
</server>
<!-- 上傳jar包到maven中央倉庫配置end -->
</servers>
複製代碼
可參考Sonatype提供的要求: central.sonatype.org/pages/requi… Sonatype提供的pom文件demo:github.com/simpligilit…
個人pom文件配置以下:github.com/zhengqingya…
<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.github.zhengqing</groupId>
<artifactId>OSSRH-49683</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>${project.groupId}:${project.artifactId}</name>
<description>The test uploads the jar to the maven central repository</description>
<url>https://github.com/zhengqingya/OSSRH-49683</url>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<dependencies>
<!-- ... -->
</dependencies>
<!-- 許可證信息 -->
<licenses>
<!-- Apache許可證 -->
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
<!-- MIT許可證 -->
<!-- <license> <name>MIT License</name> <url>http://www.opensource.org/licenses/mit-license.php</url> </license>-->
</licenses>
<!-- SCM信息 -> git在github上託管 -->
<scm>
<connection>scm:git:git://github.com/zhengqingya/OSSRH-49683.git</connection>
<developerConnection>scm:git:ssh://github.com/zhengqingya/OSSRH-49683.git</developerConnection>
<url>https://github.com/zhengqingya/OSSRH-49683/tree/master</url>
</scm>
<!-- 開發者信息 -->
<developers>
<developer>
<name>zhengqingya</name>
<email>960869719@qq.com</email>
<url>https://github.com/zhengqingya</url>
</developer>
</developers>
<!-- 使用我的資料:因爲生成javadoc和源jar以及使用GPG簽署組件是一個至關耗時的過程,所以這些執行一般與正常的構建配置隔離並移動到配置文件中。而後,在經過激活配置文件執行部署時,將使用此配置文件。 -->
<profiles>
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<!-- 要生成Javadoc和Source jar文件,您必須配置javadoc和源Maven插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<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>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- 【注】snapshotRepository 與 repository 中的 id 必定要與 setting.xml 中 server 的 id 保持一致! -->
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
</profile>
</profiles>
</project>
複製代碼
部署命令以下:
mvn clean deploy
複製代碼
當咱們的項目中含有多個模塊時,咱們可使用 -projects 來指定部署哪個模塊
舉例:
mvn clean deploy -projects demo
複製代碼
mvn clean deploy -projects demo,demo2
複製代碼
【注】第一次執行時須要輸入以前設置的passphrase密碼 ~
若是不想出現此,也可在一開始直接執行以下命令:
mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=設置gpg密鑰時輸入的Passphrase"
若是出現上傳問題,能夠嘗試將 oss.sonatype.org/#stagingRep… 上以前上傳的錯誤項目所有刪除【選中點擊Drop便可刪除】,而後再次上傳~
最後成功以下:
本地倉庫:到 oss.sonatype.org/#stagingRep… 中勾選本身上傳的構件(咱們的jar包上傳到這裏哦)點擊Close而後再Release,Release以後就會同步到maven中央倉庫
最終到 maven中央倉庫 中就能夠搜索到了