首先這里說的中央倉庫
是指的 https://issues.sonatype.org/
而不是maven私服。
其次是使用gradle上傳jar包,maven上傳,網上有很多教程,這里不做贅述。
首選在https://issues.sonatype.org/上注冊賬號並登陸!

接着是創建ISSUE(問題)

點擊 新建 彈出對話框


填完信息后點擊 新建 按鈕即可。

可以看到ISSUE創建成功了。
在這里需要記住ISSUE ID 也就是本例中的OSSRH-53913
沒有記住也沒關系,在這里可以找到。

找到之后,迅速到你的github注意去創建一個倉庫,這個倉庫名叫:OSSRH-53913 (當然以你的ISSUE ID為准)
這個倉庫就是個空倉庫,什么都不用放
接下來就是等待了,直到這個ISSUE被審核通過(需要注意的是,如果不進行創建倉庫那一步,審核是不會通過的)

審核通過之后,我們就可以上傳jar包到中央倉庫了.
我這里使用的gradle版本是5.6.2
編輯build.gradle文件
添加插件:
apply plugin: 'maven' apply plugin: 'maven-publish'
再添加:
task sourcesJar (type:Jar) {
archiveClassifier = 'sources'
}
//設置任務依賴關系,打jar包的同時,打源碼包
jar.dependsOn(sourcesJar)
/**
* 默認使用gradlew clean install命令時,僅僅只是安裝編譯好的包,源碼包
* 是不會安裝到maven倉庫的,添加此配置可以將源碼包打入到本地maven倉庫
* doc包也可以如法炮制
*/
artifacts {
archives sourcesJar
}
publishing {
publications {
myPublication(MavenPublication) {
// 如果是war包填寫components.web,如果是jar包填寫components.java
from components.java
// 指定group/artifact/version信息,可以不填。默認使用項目group/name/version作為groupId/artifactId/version
// groupId需要注意一下,如果下面倉庫的配置是oss.sonatype.org(即中央倉庫),那么這里的groupId必須為你在sonatype中申請的ISSUE中設置的ID
groupId "io.github.chenwuwen"
artifactId "$project.name"
version "$version"
artifact(sourcesJar) {
classifier = 'sources'
}
}
}
repositories {
maven {
if (project.version.endsWith('-SNAPSHOT')) {
// 快照版本地址
// 這里如果配置的是sonatype(中央倉庫的地址),需要注意上方的groupId,應該跟sonatype中的對應的ISSUE中設置的Group Id 一致
url "https://oss.sonatype.org/content/repositories/snapshots"
} else {
// 正式版本地址
// 這里如果配置的是sonatype(中央倉庫的地址),需要注意上方的groupId,應該跟sonatype中的對應的ISSUE中設置的Group Id 一致
url "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
}
credentials {
username = '剛剛申請的sonatype賬號'
password = '剛剛申請的sonatype密碼'
}
}
}
}
添加完成之后。
執行命令:
gradlew publish
直到出現

表示上傳成功。
怎么查看上傳之后的jar包呢?
打開 https://oss.sonatype.org/#welcome (如果發現該網址一直出現 loading nexus ui ........ 嘗試禁用一些瀏覽器插件/組件 等等 或者更換瀏覽器)
登錄,輸入之前申請的用戶名密碼(也可以不登錄)

在中間的搜索框中輸入,你上傳jar包的 artifactId 即可!

也可以使用groupId搜索

如何在項目中使用剛剛上傳的jar包呢?
首先需要添加倉庫地址,使用maven添加倉庫地址,是直接在pom.xml中添加
<repositories>
<repository>
<id>snapshots</id>
<name>snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
即可。
而gradle的使用方式,實在build.gradle中添加
repositories { mavenLocal() mavenCentral() // 這里定義的地址是快照版本的地址,如果你的依賴不在快照庫中,需要進行更改 maven {url 'https://oss.sonatype.org/content/repositories/snapshots/' } }
這樣依賴就可以下載下來了
對於快照版本的依賴來說,每天都可能會更新快照(但是版本號不變),因為有時候拉取的依賴可能是舊版本的依賴(因為gradle為了加快構建的速度,對jar包默認會緩存24小時,緩存之后就不在請求遠程倉庫了)
所以我們只需要在Gradle 中設置更新策略即可:
編輯build.gradle 文件
configurations.all {
// check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
如果需要重新下載dependencies 執行 ./gradlew build --refresh-dependencies 即可
maven解決快照依賴可以參考:https://www.liangzl.com/get-article-detail-139465.html
快照版本的發布就結束了
正式版本的依賴發布稍微麻煩點
https://www.jianshu.com/p/5f6135e1925f
