詳細介紹如何發佈到Maven中央倉庫

註冊賬戶

https://issues.sonatype.org

發佈問題(創建新的工程)

https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134

cg6kfe.png

摘要:項目名稱

Group Id:組名 這裏要用自己的域名的話一定要保證有域名的所有,後面會讓你添加dns記錄來驗證

Project URL倉庫地址 SCM URL git地址

之後創建

等待回覆 會讓你添加DNS記錄

cg6gn1.png

cgcFH0.png

添加後回覆,這個地址要使用這個工具才能訪問,直接執行命令後面跟着地址就行

cg6Tcd.png

等待回覆之後就能上傳了,他說上傳之後回覆

cgcNgH.png

這裏我使用Gradle

加上這2個插件

plugins {
    id 'maven-publish'
    id 'signing'
}

doc 和 source

java {
    withJavadocJar()
    withSourcesJar()
}

發佈配置

配置後先別刷新

publishing {
    //配置倉庫
    repositories {
        //本地倉庫
        def ENV = System.getenv()
        if (ENV.MAVEN_URL) {
            maven {
                url ENV.MAVEN_URL
            }
        }

        //遠程倉庫
        maven {
            url "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
            credentials {
                username ossrhUsername
                password ossrhPassword
            }
        }
    }

    publications {

        
        mavenJava(MavenPublication) {
            groupId project.group
            artifactId project.name
            version project.version

            from components.java

            //pom其他信息 這個必須加上不然等會發布驗證不會通過
            pom {
                name = 'accessor'//項目名
                description = 'Bytecode framework for java, Invoke private field and method'//描述
                url = 'https://github.com/Enaium/accessor/'//地址

                //協議
                licenses {
                    license {
                        name = 'The Apache License, Version 2.0'
                        url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }

                //開發者信息
                developers {
                    developer {
                        id = 'enaium'
                        name = 'Enaium'
                        email = '[email protected]'
                    }
                }


                //git地址
                scm {
                    connection = 'scm:git:https://github.com/Enaium/accessor.git'
                    developerConnection = 'scm:git:https://github.com/Enaium/accessor.git'
                    url = 'https://github.com/Enaium/accessor/'
                }
            }
        }
    }
}

//簽名 這個放到最後
signing {
    sign publishing.publications.mavenJava
}

在用戶根目錄的.gradle裏配置gradle.properties

signing.keyId=id
signing.password=密碼
signing.secretKeyRingFile=文件路徑.gpg
ossrhUsername=賬戶名
ossrhPassword=密碼

下載工具

GPG

GPG for Win

打開 kleopatra

創建

cggLY8.png

cggzOs.png

之後填上名字和郵箱

cg2Qk6.png

配置的ID填上後8位

導出

cg2YXd.png

加密導出

cgRlbn.png

cgRWKH.png

設置密碼

管理員運行命令

gpg --export-secret-keys -o 文件路徑.gpg

上傳到服務器

gpg --keyserver https://keys.openpgp.org --send-keys --send-keys 8位ID

好了 刷新Gradle

發佈

cgolSP.png

在那個問題回覆已經上傳

cgoTmD.png

回覆之後就訪問

https://s01.oss.sonatype.org/#stagingRepositories

輸入賬戶密碼登錄

選中一個倉庫groud_id-xxxx,點上方的Close

cgT891.png

如果成功的話再點,Close右邊的release就行了 首發於Enaium的個人博客


如果失敗了的話點Activity產看信息

cgTaHe.png

過一會收到信息

cgT7vV.png

之後可以再 https://search.maven.org/ 搜索到包

上傳到Maven中央倉庫是不是很麻煩

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章