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

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

首发于Enaium的个人博客


注册账户

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 = '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

创建

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就行了

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

cgTaHe.png

过一会收到信息

cgT7vV.png

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

如果升级版本或者在发布另一个仓库就不需要在创建问题了,直接上传就行,前提是group id不变

上传到Maven中央仓库是不是很麻烦

目录
相关文章
|
3月前
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件(如JARs):本地仓库在首次执行时创建,默认位于`%USER_HOME%/.m2/repository/`;远程仓库包括中央仓库,存放大量开源Java构件,可在线浏览<http://search.maven.org/>。若本地缺失构件,Maven会从远程下载至本地。可通过settings.xml配置本地仓库路径。
|
1月前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
530 3
|
3月前
|
敏捷开发 JavaScript Java
阿里云云效产品使用合集之如何进行Maven私有仓库迁移
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
Java Maven
maven开源仓库
maven开源仓库
116 6
|
4月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件,包括依赖和插件。有本地、中央和远程三种类型。本地仓库在首次运行时创建,默认在用户目录的`.m2/repository`。Maven首先查找本地仓库,若无则从远程仓库(如中央仓库)下载。中央仓库包含大量开源Java构件,可在线浏览于http://search.maven.org/。
|
5月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理依赖,包括本地、中央和远程仓库。本地仓库在首次运行时创建,默认位于用户目录的`.m2/repository`。若本地缺少构件,Maven会从远程仓库下载,中央仓库是默认的远程源,包含大量开源Java构件。中央仓库无需配置,可通过HTTP访问,[search.maven.org](http://search.maven.org/#browse)可浏览其内容。
|
5月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件,如JARs,分为本地、中央和远程。本地仓库在首次运行时于用户目录的`.m2/repository`创建,默认位置可修改`settings.xml`。中央仓库是社区维护的,包含大量开源Java构件,可通过http://search.maven.org搜索。当本地缺失依赖时,Maven会从远程仓库下载到本地。
|
5月前
|
敏捷开发 Java 测试技术
阿里云云效产品使用问题之搭建的maven仓库在哪里可以查看
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
Java Linux 网络安全
在Linux上搭建Maven仓库的实战教程
在Linux上搭建Maven仓库的实战教程
355 0