发布JAR到公共Maven库

本文指导如何在Sonatype上创建账号,提交问题,验证项目路径,配置Maven并使用GPG生成密钥对,发布JAR,包括手动与自动发布步骤,以及在Maven中设置Nexus OSS仓库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:sonatype

    https://issues.sonatype.org/

    第一步:需要在网站中创建账号。

    第二步:创建问题。

    第三步:等待审核,因为时差的关系,不一定能很快的得到审核。

    第四步:审核人员会在问题下面进行留言,然后按照留言照做就可以了。为了保证项目路径的有效性,审核人员会让你去创建一个项目仓库,以保证项目路径是你的,且有效。

    第五步:完成以上操作之后,就可以进行下一步动作。

二:gpg

      https://www.gpg4win.org/ 

     第一步:使用gpg生成密钥对,进入官网后,点击下载安装。

     第二步:gpg提供了可视界面操作,C:\Program Files (x86)\Gpg4win\bin\kleopatra.exe,可以在这个界面创建,查看,发布密钥对。也可以用命令行进行操作。

     第三步:如果不选择使用第二步,打开CMD,然后再输入命令gpg --gen-key然后创建密钥对。

     第四步:输入gpg --list-key,查看密钥对。

     第五步:进行发布公钥,gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 你的公钥,其中域名hkp://pool.sks-keyservers.net不一定稳定,可以使用其他域名进行发布。

     第六步:输入gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 你的公钥,查看公钥是否发布成功。

三:配置maven

    在settings.xml中server。配置https://oss.sonatype.org/网站的用户名和密码。

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

    发布的pom.xml中加入

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

    下面粘贴一个pom.xml示例

<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.gitee.xxxx</groupId>
	<artifactId>yui-yyyy</artifactId>
	<version>2.0.0</version>
	<packaging>jar</packaging>

	<name>yui-yyyy</name>
	<description>basic yui-yyyy.</description>
	<url>https://gitee.com/xxxx/yui-yyyy</url>

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

	<developers>
		<developer>
			<id>xxxx</id>
			<name>yui</name>
			<email>ssyujay@163.com</email>
		</developer>
	</developers>

	<scm>
		<connection>https://gitee.com/xxxx/yui-yyyy.git</connection>
		<developerConnection>https://gitee.com/xxxx/yui-yyyy</developerConnection>
		<url>https://gitee.com/xxxx/yui-yyyy</url>
	</scm>

	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<mybatis-plus.version>3.4.1</mybatis-plus.version>
	</properties>

	<dependencies>
	    <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<version>2.3.6.RELEASE</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>
	
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.6</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>2.0.6</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>5.1.3.RELEASE</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.2</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-core</artifactId>
			<version>${mybatis-plus.version}</version>
		</dependency>

		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-extension</artifactId>
			<version>${mybatis-plus.version}</version>
		</dependency>

		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-annotation</artifactId>
			<version>${mybatis-plus.version}</version>
		</dependency>
		
	</dependencies>

	<build>
		<plugins>
			<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>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.10.4</version>
				<configuration>
					<show>private</show>
					<nohelp>true</nohelp>
					<charset>UTF-8</charset>
					<encoding>UTF-8</encoding>
					<docencoding>UTF-8</docencoding>
				</configuration>
				<executions>
					<execution>
					    <id>attach-javadocs</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<additionalparam>-Xdoclint:none</additionalparam>
						</configuration>
					</execution>
				</executions>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>1.6</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>

</project>

四:自动发布JAR

    第一步:mvn clean deploy --settings 你的maven配置setting.xml路径,然后会提示输入gpg密码,输入密码即可。注意,发布过程可能会比较慢。

    第二步:https://oss.sonatype.org/ 进入网站登陆后,可以看到自己发布的JAR。如果是第一次发布,需要在问题中给审核人员留言“The component has been successfully released,please confirm”,让审核人员进行审核。

    第三步:然后点击close,通过之后在进行release,最后drop,这样Jar就发布成功了。

    第四步:大概2个小时后,可以http://search.maven.org/网站中查看到自己发布的JAR。

五:手动发布JAR

    这种发布方式,发布会更快些。

    第一步:mvn clean install,过后能看到四个文件

    第二部:输入gpg -ab yui-xxxxx-2.0.0.jar
                         gpg -ab yui-xxxxx-2.0.0.pom
                         gpg -ab yui-xxxxx-2.0.0-javadoc.jar
                         gpg -ab yui-xxxxx-2.0.0-sources.jar
                         jar -cvf bundle.jar yui*

        提示输入密码,输入gpg密码即可。

    

    第三部:打开网站https://oss.sonatype.org/,上传bundle.jar即可。

    第四步:然后点击close,通过之后在进行release,最后drop,这样Jar就发布成功了。

    第五步:大概2个小时后,可以http://search.maven.org/网站中查看到自己发布的JAR。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值