本文主要介紹如何一個由gradle構建的項目部署到Maven Central.html
網上大部分都是介紹如何將由maven構建的項目部署到Maven Central。與Gradle相關的比較少。java
前往 sonatype申請帳號。git
申請完,Create Issue。github
按照這個模板填。apache
這一塊比較簡單,網上教程也比較多。windows
Create Issue結束後,官方會須要你證實你擁有相對應的domain。app
證實有如下3個途徑:dom
證實完畢以後,你就能夠發佈包了。maven
你就能夠作下面幾件事了:gradle
下面主要內容基於 官方英文教程,加上一些我的構建時候的一些收穫。
apply plugin: 'maven' apply plugin: 'signing'
task javadocJar(type: Jar) { classifier = 'javadoc' from javadoc } task sourcesJar(type: Jar) { classifier = 'sources' from sourceSets.main.allSource } artifacts { archives javadocJar, sourcesJar }
引入UploadArchives
這個task,記住更改裏面的我的相關信息。
其中有ossrhUsername
和ossrhPassword
這兩個變量是定義在gradle.properties
中的。
uploadArchives { repositories { mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { authentication(userName: ossrhUsername, password: ossrhPassword) } snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { authentication(userName: ossrhUsername, password: ossrhPassword) } pom.project { name 'Example Application' packaging 'jar' // optionally artifactId can be defined here description 'A application used as an example on how to set up pushing its components to the Central Repository . ' url 'http://www.example.com/example-application' scm { connection 'scm:git:git@github.com:username/project.git' developerConnection 'scm:git:git@github.com:username/project.git' url 'https://github.com/username/project' } licenses { license { name 'The Apache License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } developers { developer { id 'manfred' name 'Manfred Moser' email 'manfred@sonatype.com' } } } } } }
主要是將一些認證信息填在這裏。(這些信息不要加入到版本管理中)。
如下3個信息怎麼來下一章節來說 signing.keyId=YourKeyId signing.password=YourPublicKeyPassword signing.secretKeyRingFile=PathToYourKeyRingFile ossrhUsername=your-jira-id 你在sonatype申請的帳號的用戶名 ossrhPassword=your-jira-password 你在sonatype申請的帳號的密碼
windows中能夠安裝gpg4win來生成相關信息。可是我我的在windows10中並無可以打開。
因此我使用了WSL來生成相關信息。若是你的系統是Linux也能夠。
gpg --gen-key
, 按照提示的信息填入密碼,用戶名等信息,這些信息記錄下來。這裏填入的密碼就是上面gradle.properties
中的signing.password
。執行gpg --list-keys
, 能夠看到
/root/.gnupg/pubring.gpg pub 2048R/B98765 2018-12-08 uid sub 2048R/A123456
pug
後面的B98765
即是public key Id,這個id也就是上面gradle.properties
中的signing.keyId
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys B98765
將公鑰發送到hkp://pool.sks-keyservers.net
。/root/.gnupg/
中secring.png
的位置,這個位置即是上面gradle.properties
中的signing.secretKeyRingFile
的值。當上述步驟所有完成時,能夠直接執行gradle uploadArchives
。
若是你的版本是snapshot
的,你能夠直接在https://oss.sonatype.org/content/repositories/snapshots
中看到你的包。
若是你的版本是release
版本。
登陸https://oss.sonatype.org/#welcome
,選擇Staging Repositories
,而後在右邊用groupId
去搜索。
這樣會找到你的項目。選中你的項目close而後confirm。過一會再來尋找一次該構建,點擊Release
在Confirm。過一會就應該能在https://oss.sonatype.org/content/groups/public
中看到你的項目了。
這裏Close可能觸發一些錯誤,能夠點擊下方的Activity來查看錯誤的緣由。通常來講,多是並無javadoc和source致使的。