首先這里說的中央倉庫
是指的 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