详细介绍如何发布到Maven*仓库

首发于Enaium的个人博客


注册账户

https://issues.sonatype.org

发布问题(创建新的工程)

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

详细介绍如何发布到Maven*仓库

摘要:项目名称

Group Id:组名 这里要用自己的域名的话一定要保证有域名的所有权,后面会让你添加dns记录来验证

Project URL仓库地址
SCM URL git地址

之后创建

等待回复 会让你添加DNS记录

详细介绍如何发布到Maven*仓库

详细介绍如何发布到Maven*仓库

添加后回复,这个地址要使用这个工具才能访问,直接执行命令后面跟着地址就行

详细介绍如何发布到Maven*仓库

等待回复之后就能上传了,他说上传之后回复

详细介绍如何发布到Maven*仓库

这里我使用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 = 'Enaium@outlook.com'
                    }
                }


                //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

创建

详细介绍如何发布到Maven*仓库

详细介绍如何发布到Maven*仓库

之后填上名字和邮箱

详细介绍如何发布到Maven*仓库

配置的ID填上后8位

导出

详细介绍如何发布到Maven*仓库

加密导出

详细介绍如何发布到Maven*仓库

详细介绍如何发布到Maven*仓库

设置密码

管理员运行命令

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

上传到服务器

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

好了 刷新Gradle

发布

详细介绍如何发布到Maven*仓库

在那个问题回复已经上传

详细介绍如何发布到Maven*仓库](https://imgtu.com/i/cgoTmD)

回复之后就访问

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

输入账户密码登录

选中一个仓库groud_id-xxxx,点上方的Close
详细介绍如何发布到Maven*仓库

如果成功的话再点,Close右边的release就行了

如果失败了的话点Activity产看信息

详细介绍如何发布到Maven*仓库

过一会收到信息

详细介绍如何发布到Maven*仓库](https://imgtu.com/i/cgT7vV)

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

上传到Maven*仓库是不是很麻烦

上一篇:Gradle 签名的配置文件 gradle.properties


下一篇:Gradle 对包进行签名的时候提示错误 00B5050F