【maven】上传jar包到maven中央仓库

常用地址:

git项目地址:https://github.com/a982338665/lf-execl-easy
官网地址:https://issues.sonatype.org
GPG环境下载地址:https://www.gnupg.org/download/
查看上传的代码:https://oss.sonatype.org/#stagingRepositories
参考地址:https://www.jianshu.com/p/354f66ed4f89 ,https://www.jianshu.com/p/eea4650b57cf
查看发布成果[2小时左右]:https://search.maven.org/
查看发布成果[几星期]:https://mvnrepository.com
将快照工件部署到存储库:https://oss.sonatype.org/content/repositories/snapshots
将发布工件部署到登台存储库:https://oss.sonatype.org/service/local/staging/deploy/maven2

1.0 注册并且创建工单:

0.官网地址:https://issues.sonatype.org
1.groupId的审核,https://github.com/a982338665/lf-execl-easy时,建议写为com.github.a982338665保证唯一
2.跟审核人员的不断沟通,按提醒完成相关操作,审核状态由OPEN -> Resolved

2.0 配置MVN的Settings.xml信息:conf/settings.xml的servers标签下

 <servers>
     <server>
         <id>oss</id>
         <username>用户名</username>
         <password>密码</password>
     </server>
 </servers>

3.0 配置项目下的pom.xml:配置代码发布器:

<!-- pom.xml 中必须包括:name、description、url、licenses、developers、scm 等基本信息,使用了 Maven 的 profile 功能,
<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.github.a982338665</groupId>
    <artifactId>lf-execl-easy</artifactId>
    
    <!--首次上传一定要RELEASE,否则在暂存库中找不到-->
    <version>0.0.1-RELEASE</version>
    <packaging>jar</packaging>
    <!-- 必须要写,否则cloe会报错-->
	<url>https://github.com/a982338665/lf-execl-easy</url>
    <name>lf-execl-easy</name>
    <description>excel 简易使用</description>


    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <build>
        <!--打包后的名称-->
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <!-- Source -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Javadoc -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <show>private</show>
                    <nohelp>true</nohelp>
                    <charset>UTF-8</charset>
                    <encoding>UTF-8</encoding>
                    <docencoding>UTF-8</docencoding>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- GPG -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

    </build>

    <distributionManagement>
        <snapshotRepository>
            <id>oss</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        </snapshotRepository>
        <repository>
            <id>oss</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <!--    需要替换的内容-->
    <scm>
        <url>https://github.com/a982338665/lf-execl-easy</url>
        <connection>https://github.com/a982338665/lf-execl-easy.git</connection>
        <developerConnection>https://github.com/a982338665/lf-execl-easy</developerConnection>
    </scm>
    <developers>
        <developer>
            <name>luofeng</name>
            <email>982338665@qq.com</email>
            <url>https://github.com/a982338665/lf-execl-easy</url>
            <roles>
                <role>developer</role>
            </roles>
        </developer>
    </developers>

</project>

4.0 GPG环境,用来对上传的文件进行加密和签名,保证你的jar包不被篡改:

1.下载地址:
    windows(二进制安装,安装后将可执行命令添加至系统环境变量中):https://www.gpg4win.org/
    linux: https://www.gnupg.org/download/
2.相关命令:
    ·安装是否成功: gpg –version 
    ·生成密钥对:gpg --gen-key
                D:\install-soft\Gpg4win\bin>gpg --gen-key
                gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
                This is free software: you are free to change and redistribute it.
                There is NO WARRANTY, to the extent permitted by law.
                
                Note: Use "gpg --full-generate-key" for a full featured key generation dialog.
                
                GnuPG needs to construct a user ID to identify your key.
                
                Real name: a982338665
                Email address: 982338665@qq.com
                You selected this USER-ID:
                    "a982338665 <982338665@qq.com>"
                
                Change (N)ame, (E)mail, or (O)kay/(Q)uit? o
                We need to generate a lot of random bytes. It is a good idea to perform
                some other action (type on the keyboard, move the mouse, utilize the
                disks) during the prime generation; this gives the random number
                generator a better chance to gain enough entropy.
                We need to generate a lot of random bytes. It is a good idea to perform
                some other action (type on the keyboard, move the mouse, utilize the
                disks) during the prime generation; this gives the random number
                generator a better chance to gain enough entropy.
                gpg: key 6A08A45BDF4C5202 marked as ultimately trusted
                gpg: directory 'C:/Users/Administrator/AppData/Roaming/gnupg/openpgp-revocs.d' created
                gpg: revocation certificate stored as 'C:/Users/Administrator/AppData/Roaming/gnupg/openpgp-revocs.d\29851CD296284B502C608DE06A08A45BDF4C5202.rev'
                public and secret key created and signed.
                
                pub   rsa2048 2020-06-02 [SC] [expires: 2022-06-02]
                      29851CD296284B502C608DE06A08A45BDF4C5202
                uid                      a982338665 <982338665@qq.com>
                sub   rsa2048 2020-06-02 [E] [expires: 2022-06-02]
                生成的时候会弹框要求输密码:打包上传的时候需要它,保存好【GPG密码】
                以上完成后,【6A08A45BDF4C5202】就是申请的key
    ·查看公钥:gpg --list-keys
                D:\install-soft\Gpg4win\bin>gpg --list-keys
                C:/Users/Administrator/AppData/Roaming/gnupg/pubring.kbx
                --------------------------------------------------------
                pub   rsa2048 2020-06-02 [SC] [expires: 2022-06-02]
                      29851CD296284B502C608DE06A08A45BDF4C5202
                uid           [ultimate] a982338665 <982338665@qq.com>
                sub   rsa2048 2020-06-02 [E] [expires: 2022-06-02]
                公钥为:【29851CD296284B502C608DE06A08A45BDF4C5202】
    ·将公钥发布到GPG密钥服务器-linux:将我们的公钥发布给官方,让其能够解析我们本地用私钥加密后的数据
        gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 公钥ID
    ·将公钥发布到PGP密钥服务器-windows:gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 5C1845F3
    ·查询公钥是否发布成功:
        gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 公钥ID

5.0 上传发布:上传一定不要点击idea的deploy按钮,因为deploy和maven-gpg-plugin结合的不是很好,那个gpg插件无法运行,一定要用客户端

注意:第一次不能上传SNAPSHOT版本
mvn clean deploy --settings /Users/zhouzhenyong/.m2/setting_maven_center.xml
若settings已经配置好,则只需执行:
mvn clean deploy
命令之后会提示输入密码:上一步中的【GPG密码】

6.0 查看上传结果:

地址:https://oss.sonatype.org/#stagingRepositories
登陆:账号是我们注册的用户名和密码
点击:左侧的“Staging Respositories(暂存仓库)”,然后在右上角输入groupId,就可以搜索
然后close,然后release即可

7.0 推广您的第一个发行版时,请对此票发表评论,谢谢

release之后:
    Although I have encountered some problems, finaly I have released my staging repo.The component has been successfully released,please confirm, thanks very much

8.0 查看中央仓库:

当那边的工作人员审批完成之后,就可以将这个issue关闭了,一般过十分钟或者两个小时左右,我们就可以去
中央仓库https://search.maven.org/中查看,应该就可以看到我们的这个项目了,对于更加
流行的仓库https://mvnrepository.com,可能需要好几个星期之后才会看到,主要是同步慢。我这边是过了一天之后,这边就可以查看了

9.0 以后的发布:

以后如果发布该项目,则直接maven发布即可,然后close,然后release即可。不用像上面一样创建issue了,
如果发布的项目跟该项目group相同,则按照maven发布->close->release即可,如果不同则要开始注册issue了。
不过对于每次发布都手动close和release有点麻烦的话,可以使用nexus-staging-maven-plugin这个插件,但是建议第一次不要使用该插件,
手动执行是可以填写一些描述的,但是这个插件执行是不会有任何再输入的,而是一次性就执行完,最后等十几分钟就直接发到仓库中心了。

10.0 问题:

1.无效的POM:/com/github/a982338665/lf-execl-easy/1.0.0-RELEASE/lf-execl-easy-1.0.0-RELEASE.pom:项目URL丢失 
    添加url
2.没有公钥:ID为(6a08a45bdf4c5202)的密钥无法位于<a href="http://keyserver.ubuntu.com:11371/"> http://keyserver.ubuntu.com:11371/ < / a>。上载您的公钥,然后重试该操作。
    可能是因为 windows的缘故
    gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 29851CD296284B502C608DE06A08A45BDF4C5202
    gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 29851CD296284B502C608DE06A08A45BDF4C5202
3.com.github.a982338665已准备就绪,现在用户a982338665可以:
  将快照工件部署到存储库https://oss.sonatype.org/content/repositories/snapshots
  将发布工件部署到登台存储库https://oss.sonatype.org/service/local/staging/deploy/maven2
  将分阶段的工件释放到存储库“发布”中
  推广您的第一个发行版时,请对此票发表评论,谢谢
4.发布成功,但是无法下载问题:
    检查pom.xml中是否有报错,修改后重新导入

11.相关的图片信息请移步git仓库:

https://github.com/a982338665/lf-execl-easy/tree/master/uploadmvn
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
上传jar包Maven 仓库需要执行以下步骤: 1. 在本地 Maven 仓库中安装 jar 包 在命令行中执行以下命令: ``` mvn install:install-file -Dfile=path/to/your.jar -DgroupId=your.group.id -DartifactId=your-artifact-id -Dversion=your-version -Dpackaging=jar ``` 其中,`path/to/your.jar` 是你要上传的 jar 包路径,`your.group.id` 、`your-artifact-id` 和 `your-version` 分别代表你的 Maven 项目的 Group ID、Artifact ID 和版本号。 2. 配置 Maven 项目的 pom.xml 文件 在 Maven 项目的 `pom.xml` 文件中添加以下配置: ``` <repositories> <repository> <id>your-repo-id</id> <url>https://your.repo.url</url> </repository> </repositories> <dependencies> <dependency> <groupId>your.group.id</groupId> <artifactId>your-artifact-id</artifactId> <version>your-version</version> </dependency> </dependencies> <distributionManagement> <repository> <id>your-repo-id</id> <url>https://your.repo.url</url> </repository> </distributionManagement> ``` 其中,`your-repo-id` 和 `https://your.repo.url` 分别代表你的 Maven 仓库的 ID 和 URL。 3. 配置 Maven 的 settings.xml 文件 在 Maven 的 `settings.xml` 文件中添加以下配置: ``` <servers> <server> <id>your-repo-id</id> <username>your-username</username> <password>your-password</password> </server> </servers> ``` 其中,`your-username` 和 `your-password` 分别代表你的 Maven 仓库的用户名和密码。 4. 执行 Maven 的 deploy 命令 在命令行中执行以下命令: ``` mvn deploy ``` 这将会把你的 jar 包上传Maven 仓库中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皇夜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值