美文网首页Java
发布项目到maven中央库

发布项目到maven中央库

作者: WANGGGGG | 来源:发表于2020-04-13 11:10 被阅读0次

    前言

    在我正式提交版本成功之前,百度上已经有很多指导性(当然很多都是抄的很直接引用的)的说明了,但是我在提交过程中还不是很顺利,所以我在这里优化一下,仅仅是优化一下,毕竟前辈们还是很强大的

    一、创建一个账号

    用户名,密码,邮箱,一系列信息填写之后完成注册,登录
    注意,邮箱一定要填写正确

    二、创建工单

    创建工单.png

    然后工作人员会跟你进行一系列对话,确认你的groupId,确认github是不是你本人的,然后会看到以下信息


    权限开通成功.JPG

    让你在发布第一个release的时候回复他一下。

    三、更新maven的settings.xml

    在servers标签中增加如下内容,

    <servers>
        <server>
        <!--release版本的库id,必须要和后面pom中的配置对应-->
            <id>repository</id>
            <username>sonatype的用户名</username>
            <password>密码</password>
        </server>
        <server>
        <!--snapshots版本的库id,必须要和后面pom中的配置对应-->
             <id>snapshots</id>
             <username>用户名</username>
             <password>密码</password>
         </server>
    </servers>
    

    四、修改pom

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.github.wangcanfeng01</groupId>
        <artifactId>freedom-ragnaros</artifactId>
        <version>1.0.RELEASE</version>
        <!--继承一下配置,好用!也可以不继承,自己写所有的,看个人喜欢-->
        <parent>
            <groupId>org.sonatype.oss</groupId>
            <artifactId>oss-parent</artifactId>
            <version>7</version>
        </parent>
    
    
    
        <distributionManagement>
            <repository>
            <!--id必须和上面的配置对应上-->
                <id>repository</id>
                <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
            </repository>
            <snapshotRepository>
            <!--id必须和上面的配置对应上-->
                <id>snapshots</id>
                <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            </snapshotRepository>
        </distributionManagement>
    
        <licenses>
            <license>
                <name>BSD 3-Clause License</name>
                <url>https://opensource.org/licenses/bsd-3-clause</url>
                <distribution>repo</distribution>
            </license>
        </licenses>
    
        <scm>
            <url>https://github.com/wangcanfeng01/ragnaros</url>
            <connection>https://github.com/wangcanfeng01/ragnaros</connection>
            <developerConnection>http://www.canfeng.xyz/home</developerConnection>
        </scm>
    
        <developers>
            <developer>
                <name>wangcanfeng</name>
                <email>373811598@qq.com</email>
                <url>https://github.com/wangcanfeng01</url>
            </developer>
        </developers>
    
        <dependencies>
            <!--各种依赖-->
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <!--打包源码的插件-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.0.0</version>
                    <configuration>
                        <attach>true</attach>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>compile</phase>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--生成javadoc,如果你没有配置javadoc的环境变量,这里就要加一下javadoc的路径-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.9.1</version>
                    <configuration>
                        <javadocExecutable>C:/Program Files/Java/jdk1.8.0_151/bin/javadoc</javadocExecutable>
                    </configuration>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--gpg加密插件,必须得有,而且还要安装gpg的工具,下面会说的-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>1.5</version>
                    <executions>
                        <execution>
                            <phase>verify</phase>
                            <goals>
                                <goal>sign</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>
    

    五、gpg密钥生成

    gpg官网下载页面

    gpg工具下载.png [图片上传中...(生成秘钥.png-6a895a-1586747315277-0)]

    下载完之后傻瓜式安装,然后生成秘钥
    (1)执行语句验证是否安装成功
    gpg --version
    提示:如果你安装成功了,但是在编译器(idea)中说没有gpg指令,那么你就要重启一下编译器
    (2)然后生成秘钥
    gpg --gen-key

    生成秘钥.png
    按照提示输入各种信息后,会有秘钥生成,记住它,不要忘了!因为后面deploy的时候需要用到
    (3)然后将公钥发布到服务器上
    gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 你的公钥
    (4)查看公钥是不是已经发布到库上面了
    gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 你的公钥
    下面这个命令可以让你查看到你所拥有的公钥信息
    gpg --list-keys

    六、deploy

    执行下面这条命令,之后输入你的秘钥信息,然后就会将jar包发布出去了,如果你的网不行的话,可能发布过程会很长哦
    mvn clean deploy -P release

    七、close和release

    这个时候我们的jar包还没有正式发布,需要去下面这个网站close和release一下
    正式发布链接

    release和close.png
    可能你在release的时候会失败,如果它提示的是你的public key的问题
    参考stackoverflow上面的解决方案,我把我的公钥发布到这个上面之后就成功的release了
    gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys EE539F98
    gpg --keyserver hkp://keyserver.ubuntu.com --send-keys EE539F98
    stackoverflow上面的解决方案
    注意这里你就要回复一下工作人员了,告诉他你已经成功的release了
    然后他会回复你
    release成功.JPG
    到这里就可以庆祝了,项目已经发布成功了,打一会游戏坐等。

    八、在中央库中查询

    上面的流程完了之后,过段时间我们可以在这个页面查询jar包信息
    https://search.maven.org
    但是在https://mvnrepository.com/这里还不能查到,可能过两天才行。

    九、依赖包引入测试

    这里就可以通过pom引入你的jar包了,终于成为广大开源爱好者的一员了。

    参考文献

    清晰的教你如何将 Maven 项目上传至 中央仓库以及版本更新

    相关文章

      网友评论

        本文标题:发布项目到maven中央库

        本文链接:https://www.haomeiwen.com/subject/hozimhtx.html