Jar发布到Maven*仓库

时间:2022-11-11 11:01:17

一、预置环境

基于windows10环境

  • java 1.8
  • maven 3.6.3(maven3.8以上不再支持http,弃用)
  • gpg 2.0+(Centos7内置)

需要去​​System Dashboard - Sonatype JIRA​创建一个Issue,使用的域名还要验证是否真实持有。

创建成功之后,如图所示,此时就可以进行jar包部署了。

Jar发布到Maven*仓库

1、windows生成密钥证书并上传到服务器

windos生成证书安装包下载地址:​​​https://www.gpg4win.org/thanks-for-download.html​

1、安装后打开软件创建一个密钥对

Jar发布到Maven*仓库

Jar发布到Maven*仓库

邮件地址要是真实可用的,上传到服务器需进行邮件验证

2、选择创建的密钥对导出证书.asc文件

上传到如下网址​​https://keys.openpgp.org/upload​

上传证书

Jar发布到Maven*仓库

发送邮件

Jar发布到Maven*仓库

邮件验证ok

Jar发布到Maven*仓库

2.2 配置Maven

在maven的settings.xml里面添加

<server>
<id>ossrh</id>
<username>sonatype用户名</username>
<password>sonatype密码</password>
</server>

这里的用户名和密码就是下面网址注册的  不要使用中文注册、不要使用中文注册、不要使用中文注册 不然后面会登录maven仓库时无法登录

​https://issues.sonatype.org/secure/Dashboard.jspa​

注册完发一个创建新的项目的less 根据步骤出现下图即可【后面会出一个注册发布的文章】这里先过

Jar发布到Maven*仓库

2.3 配置pom

以我自己的pom为例,主要是将官方提供的plugin都cv了过来。

使用注释1到8的最好都配置上 范文使用了begin end隔开了【个人注释可能解释的不对】

<?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">
<parent>
<artifactId>java-dtp-demo</artifactId>
<groupId>com.itspz</groupId>
<version>0.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<!-- 1、begin -->
<groupId>com.itspz.dtp</groupId>
<artifactId>dtp-spring-boot-starter</artifactId>
<version>0.0.1</version>

<name>itspz-dtp</name>
<description>动态线程池工具</description>
<url>https://github.com/SongPingZhou/-java-dtp-demo</url>
<inceptionYear>2022</inceptionYear>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<skipTests>true</skipTests>
</properties>
<!-- 1、end -->

<dependencies>

<!-- 我的jar包需要nacos -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.7</version>
</dependency>

<!-- 我的jar包需要 configuration -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>


</dependencies>

<!-- 2、bgein发布到的仓库 -->
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<!-- 2、end -->

<!-- 3、begin开源协议 -->
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
<!-- 3、end -->

<!-- 4、begin -->
<scm>
<url>https://github.com/SongPingZhou/-java-dtp-demo</url>
<connection>scm:git:http://git@github.com:SongPingZhou/-java-dtp-demo.git</connection>
<developerConnection>https://blog.51cto.com/u_15430445</developerConnection>
</scm>
<!-- 4、end -->

<!-- 5、begin bug提交地址 -->
<issueManagement>
<system>Github</system>
<url>https://github.com/SongPingZhou/-java-dtp-demo/issues</url>
</issueManagement>
<!-- 5、end -->

<!-- 6、begin -->
<organization>
<name>宋平州</name>
<url>https://blog.51cto.com/u_15430445</url>
</organization>
<!-- 6、end -->


<!--7 begin 开发者信息-->
<developers>
<developer>
<name>songpingzhou</name>
<email>songpingzhou@163.com</email>
<organization>songpingzhou</organization>
<organizationUrl>https://blog.51cto.com/u_15430445</organizationUrl>
</developer>
</developers>
<!-- 7、end -->

<!-- 8、begin 构建 -->
<build>
<pluginManagement>
<!-- mvn clean source:jar javadoc:jar deploy -DskipTest -->
<!--配置插件-->
<plugins>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<encoding>UTF-8</encoding>
<charset>UTF-8</charset>
<docencoding>UTF-8</docencoding>
</configuration>
</plugin>


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>

</build>
<!-- 8、end -->

</project>

二、发布

在项目目录使用如下命令

mvn clean source:jar javadoc:jar deploy -DskipTest

Jar发布到Maven*仓库

最后这样就可以了

Jar发布到Maven*仓库

同步结果如下图。

Jar发布到Maven*仓库

Jar发布到Maven*仓库