gradle上傳jar包到maven公共倉庫


首先這里說的中央倉庫

是指的 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

https://blog.csdn.net/xiajiqiu/article/details/77607492

https://blog.csdn.net/mr_zhuqiang/article/details/84564256


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM