maven发布jar到中央仓库

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: maven发布jar到中央仓库

maven发布jar到中央仓库


一、注册JIRA帐号


地址:https://issues.sonatype.org/secure/Dashboard.jspa


注意:密码需要至少8位,同时有大小写字母,特殊字符和数字


二、创建issue


download.png

1898904-20200514092946197-1305403403.png

1898904-20200514093011238-1471388425.png

1898904-20200514093025263-1225343467.png

三、等待审核


域名问题,需要groupId的域名部分属于自己的域名,在这里使用com.github.duojin

根据一系列对话的指引解决所有问题,地址https://issues.sonatype.org/browse/OSSRH-53957


1898904-20200514093054174-1485957934.png

四、gpg 环境安装



gpg的主要作用是生成密钥对,会用于后续我们组件发布的校验。


1、下载地址: https://www.gnupg.org/download/, 安装时会附带安装UI程序kleopatra


2、在安装完成后,运行kleopatra程序,新建密钥对


3、导出证书 发布证书

1898904-20200514093126087-791380591.png


五、maven 全局配置


默认的maven配置文件为用户目录下的 .m2/setting.xml或自己配置后的目录文件

添加服务器验证

<server>
    <id>sonatype_releases</id>
    <username>your user name</username>
    <password>your password</password>
</server>
<server>
    <id>sonatype_snapshots</id>
    <username>your user name</username>
    <password>your password</password>
</server>


用户名和密码是第一步中注册的JIRA的


配置gpg验证命令

<settings>
  <profiles>
    <profile>
      <id>gpg</id>
      <properties>
        <gpg.executable>gpg</gpg.executable>
        <gpg.passphrase>your password</gpg.passphrase>
      </properties>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>gpg</activeProfile>
  </activeProfiles>
</settings>

六、项目中的maven配置


  • 在项目的pom.xml文件中,配置相应的开源协议、仓库信息、开发人员信息和发布配置
<!-- 开源签名证书 -->
<licenses>
    <license>
        <name>The Apache Software License, Version 2.0</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        <distribution>repo</distribution>
    </license>
</licenses>
<!-- 仓库信息 -->
<scm>
    <connection>scm:git@github.com:duojin/sms-spring-boot-project.git</connection>
    <developerConnection>scm:git@github.com:duojin/sms-spring-boot-project.git
    </developerConnection>
    <url>https://github.com/duojin/sms-spring-boot-project</url>
</scm>
<!-- 开发人员信息 -->
<developers>
    <developer>
        <name>ajoe.Liu</name>
        <email>87893689@qq.com</email>
        <organization>https://github.com/duojin</organization>
        <timezone>+8</timezone>
    </developer>
</developers>
<!-- 发布管理信息 -->
<distributionManagement>
    <repository>
        <!-- 这里的id必须要和全局配置中的release id 一致 -->
        <id>sonatype_releases</id>
        <name>Nexus Release Repository</name>
        <!-- 这里就是在创建issue成功后,对方回复的release发布地址-->
        <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
    </repository>
    <snapshotRepository>
        <!-- 这里的id必须要和全局配置中的snapshot id 一致 -->
        <id>sonatype_snapshots</id>
        <name>Nexus Snapshot Repository</name>
        <!-- 这里就是在创建issue成功后,对方回复的snapshot发布地址-->
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
</distributionManagement>

发布到maven中央仓库会要求我们在上传jar到同时,必须同步发布对应到Javadoc、source、asc(利用gpg生成到校验),所以需要在maven中添加以下构建插件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <!-- -->
        <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.7</version>
            <extensions>true</extensions>
            <configuration>
                <!-- 这里的id必须要和全局配置中的release id 一致 -->
                <serverId>sonatype_releases</serverId>
                <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                <!-- 如果希望发布后自动执行close和release操作,此处可以调整为true -->
                <autoReleaseAfterClose>false</autoReleaseAfterClose>
            </configuration>
        </plugin>
        <!-- 生成java source.jar -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar-no-fork</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.9.1</version>
            <configuration>
                <aggregate>true</aggregate>
                <charset>UTF-8</charset>
                <encoding>UTF-8</encoding>
                <docencoding>UTF-8</docencoding>
                <!-- -Xdoclint:none maven忽视javadoc过程中警告和错误 -->
                <additionalparam>-Xdoclint:none</additionalparam>
            </configuration>
            <executions>
                <execution>
                    <id>attach-javadocs</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!-- 生成asc 校验文件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.5</version>
            <executions>
                <execution>
                    <!-- 必须和配置中的gpg校验id一致 -->
                    <id>gpg</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>sign</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

 

七、打包发布jar到中央仓库


  • 执行以下命令进行发布(如果 pom.xml 中 autoReleaseAfterClose 的值为true,则脚本会自动完成在平台上close、release的操作,至此你将成功发布了,否则我们继续查看第3步)


测试打包

mvn clean package

发布

mvn clean release

八、验证


1898904-20200514093459130-1385750065.png


九、告知收尾


回复评论、需要发布release版本、jar包才会同步到中央仓库  

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
4天前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
8天前
|
Java Linux Maven
Maven 仓库
Maven 仓库是管理项目依赖、插件及构建输出(构件)的位置。分为本地、中央和远程三种。本地仓库默认位于用户目录 `.m2/repository/`,可配置至其他路径,如 `C:/MyLocalRepository`。Maven 首次运行时创建本地仓库,并按需从中获取或下载构件。中央仓库由 Maven 社区维护,包含丰富的开源 Java 构件及其相关信息,可通过 `http://search.maven.org/#browse` 访问,无需额外配置,但需网络连接。
|
4天前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
|
6天前
|
存储 Java Linux
Maven 仓库
Maven仓库是管理项目依赖、插件及构建输出(如JAR、WAR等)的存储位置。分为本地、中央和远程三种。本地仓库默认位于用户家目录`.m2/repository`,可配置至其他路径;中央仓库由Maven社区维护,包含丰富开源库,无需配置但需网络访问。远程仓库则介于两者之间。通过合理利用这些仓库,可以高效管理项目依赖。
|
10天前
|
存储 Java Linux
Maven 仓库
Maven仓库是管理项目依赖、插件及构建输出(如JAR、WAR文件)的存储位置。分为本地、中央和远程三种。本地仓库默认位于用户家目录`.m2/repository`,可配置至其他路径;中央仓库由Maven社区维护,包含广泛使用的开源库,无需配置但需网络访问。远程仓库则介于两者之间。通过Maven,开发者可自动获取或上传构件,简化了依赖管理。
|
7天前
|
Java Linux Maven
Maven 仓库
Maven 仓库是管理项目依赖、插件及构建输出(构件)的位置。分为本地、中央和远程三种。本地仓库默认位于 `%USER_HOME%/.m2/repository/`,首次执行 Maven 命令时创建,可配置自定义路径。中央仓库由 Maven 社区维护,包含丰富的开源 Java 构件及元数据,无需配置但需网络访问,可通过 `http://search.maven.org/#browse` 浏览。远程仓库则介于两者之间,用于存放特定组织所需的构件。
|
4天前
|
Java Linux Maven
Maven 仓库
Maven 仓库是管理项目依赖、插件及构建输出(如 JAR、WAR 和 POM 文件)的地方。分为本地、中央和远程仓库。本地仓库默认位于 `%USER_HOME%/.m2/repository`,可自定义;首次运行 Maven 命令时创建。中央仓库由 Maven 社区维护,包含丰富的开源 Java 构件及其相关信息,无需配置但需网络访问,可浏览于 `http://search.maven.org`。远程仓库则指除本地和中央仓库之外的其他外部仓库。
|
7天前
|
Java Maven Windows
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
15 0
|
7天前
|
Java Maven
SpringBoot 引用仓库中没有 第三方包 - 将jar 包安装本地 maven
SpringBoot 引用仓库中没有 第三方包 - 将jar 包安装本地 maven
10 0
|
22天前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
145 2
[JarEditor]可直接修改jar包的IDEA插件

推荐镜像

更多