JAVA开源软件开发必备技能
发布构建到maven中央仓库的方法和详细步骤
- sonatype介绍
- 向sonatype提交申请
- 配置maven
- GPG签名
- 发布版本
- 通知sonatype
sonatype介绍
Maven项目托管在Apache上的,但是中央仓库不是Apache的资源,中央仓库是由Sonatype出资维护的。目前来说,http://repo1.maven.org/maven2/是真正的Maven中央仓库的地址。Nexus仓库就是Sonatype开发的,搭建maven私服普遍采用Nexus。
向sonatype提交申请
- 首先需要注册sonatype,地址:https://issues.sonatype.org/browse/OSSRH-19497?filter=-2
- 创建issue,点击Create,选择New Project
- 提交申请,主要填写项目简介,groupId,projectUrl,scmUrl。这里的groupId必须是自己拥有的域名,或者采用com.github.{user}
- 提交申请后,sonatype的工作人员会进行审核,通过后issue的状态变为RESOLVED
配置maven
- 项目基本信息配置,主要包括名称,描述,github地址,开发者信息等
-
<name>Gecco</name> <description>Easy to use lightweight web crawler</description> <url>https://github.com/xtuhcy/gecco</url> <scm> <connection>scm:git:https://github.com/xtuhcy/gecco.git</connection> <developerConnection>scm:git:https://github.com/xtuhcy/gecco.git</developerConnection> <url>https://github.com/xtuhcy/gecco</url> <tag>v1.0.0</tag> </scm> <developers> <developer> <name>xtuhcy</name> <email>xtuhcy@163.com</email> <organization>geccocrawler</organization> <organizationUrl>http://www.geccocrawler.com</organizationUrl> </developer> </developers> <licenses> <license> <name>The MIT License (MIT)</name> <url>https://raw.githubusercontent.com/xtuhcy/gecco/master/LICENSE</url> </license> </licenses>
- 配置source、javadoc打包和gpg签名。上传maven中央库的构建必须包含源码、javadoc,并且对构件jar、源码jar、javadoc的jar进行gpg签名
-
<profiles> <profile> <id>release</id> <distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url> </repository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <useReleaseProfile>false</useReleaseProfile> <releaseProfiles>release</releaseProfiles> <goals>deploy</goals> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> </configuration> <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> <configuration> <encoding>UTF-8</encoding> </configuration> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles>
- 打包时只需要添加-P release即可执行上述构件jar、源码jar、javadoc的jar以及签名等一系列操作。如mvn deploy -P release
- 配置上传账户,修改maven的setting.xml,添加刚才注册的sonatype的账号和密码
-
<servers> <server> <id>ossrh</id> <username>memory</username> <password>your password</password> </server> </servers>
- 上述配置完成后还不能成功上传中央库,需要配置gpg签名。生成密钥。
GPG签名
- gpg签名的主要目的就是生成公钥、私钥,并将公钥上传到gpg的密钥服务器上,之后上传maven服务器的文件都可以通过该私钥进行数字签名,以保证是您自己上传到maven服务器上的。
- 第一步,安装gng window下载地址:https://www.gpg4win.org/download.html
- 第二步,生成密钥 gpg --gen-key 除了用户名和邮箱已经密码,其他均可以默认 生成密钥后,可以通过gpg --list-keys查看
- 第三步,上传公钥到gpg服务器 gpg --keyserver hkp://pool.sks-keyservers.net --send-k eys 3E8E57E4 有时不成功,多尝试几次。
发布版本
一切准备就绪,发布版本,mvn deploy -P release。编译后在签名是需要提供刚才生成gpg密钥时输入的密码 到此,一个构件已经发布到中央库,但是能正式下载还需要sonatype的工作人员审核。
最后一步通知sonatype
回到sonatype网站的issue,回复issue,等待审核。审核通过的结果如下: 等待2个小时,您就可以在中央库下载自己的jar了。
这里说明一下自己使用的软件环境:maven3.2.2,eclipse luna
相关推荐
JarsCrawler 爬取阿里maven中央仓库的所有jar包
repository.zip--------(maven的本地仓库) 包含一些常用的jar包
Java_apache-maven-3.3.1.rar_安装包_kaic Java_apache-maven-3.3.1.rar_安装包_kaic Java_apache-maven-3.3.1.rar_安装包_kaic Java_apache-maven-3.3.1.rar_安装包_kaic Java_apache-maven-3.3.1.rar_安装包_kaic ...
java maven 仓库包 pentaho-aggdesigner-algorithm-5.1.3-jhyde.jar
gs-maven, 使用 Maven 构建Java项目 标记项目maven目录你将构建什么。你需要什么。设置了项目项目。定义一个简单的Maven 构建工具。构建Java代码声明依赖项编写测试文件。摘要文件另请参阅本指南引导你使用 Maven
- [一、Maven简介和快速入门](#一Maven简介和快速入门) - [1.1 Maven介绍](#11-Maven介绍) - [1.2 Maven主要作用理解](#12-Maven主要作用理解) - [1.3 Maven安装和配置](#13-Maven安装和配置) - [二、基于IDEA的...
java后台开发Maven例子--整合spring,spingmvc,hibernate,登录,查询数据库
解决 Maven 无法下载 fastdfs-client-java-1.29-SNAPSHOT 依赖,直接下载之后用maven命令存储到本地maven仓库即可。 maven命令 mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java ...
maven-aether-provider-3.2.1-sources.jar maven-antrun-plugin-1.3.jar maven-archiver-2.2.jar maven-artifact-3.2.1-sources.jar maven-assembly-plugin-2.2-beta-5.jar maven-bundle-plugin-1.0.0.jar maven-...
maven本地仓库的默认位置:无论是Windows还是Linux,在用户的目录下都有一个.m2/repository/的仓库目录,这就是Maven仓库的默认位置,变更maven默认的本地仓库的位置可更改存在于maven的settings.xml文件中local...
高级软件人才培训专家-day04-Maven
smart-doc-maven-plugin是smart-doc官方团队开发的maven插件。 这个插件可以从 smart-doc 1.7.9 获得。 使用 smart-doc-maven-plugin 可以更轻松地将 smart-doc 集成到您的项目中,并且集成更轻量级。 您不再需要在...
graphql-java-codegen-maven-plugin:graphql-java-codegen的Maven插件
Spring IoC简单示例,使用XML配置依赖注入,使用Maven构建项目 Maven使用及Spring IoC教程参考我的Blog:http://blog.csdn.net/boyazuo
( apache-maven-3.2.1.zip )java开发常用工具( apache-maven-3.2.1.zip )java开发常用工具
ngacareer/alpine-java8-maven docker exec -it alpine-java8-maven bin/sh # mvn --version 在 Kubernetes 上 kubectl run alpine-java8-maven --image=ngacareer/alpine-java8-maven kubectl exec -it pod/alpine-...
第02章-使用Maven构建应用-Maven中央仓库.mp4---011.第02章-使用Maven构建应用-Maven依赖机制.mp4---012.第02章-使用Maven构建应用-MavenPOM.mp4---013.第02章-使用Maven构建应用-Maven快照.mp4---014.第02章-使用...
Maven可以简化项目的构建和依赖管理,并提供了一种规范化和可复用的方式来管理Java项目。它广泛应用于Java开发领域,简单来说:它提供了一个简单而强大的方式来管理项目的构建、依赖关系和文档在企业级项目中被广泛...
编辑工具目录中的conf/mvnd.properties配置文件,修改maven.settings属性值为你本地使用的maven配置,这样可以复用maven配置,不用再重新下载一堆儿jar包了 注意使用linux下的路径分隔符/; 配置mvnd可执行文件到...
jmeter-maven-plugin, JMeter Maven 插件 #JMeter Maven 插件 提供在构建过程中运行JMeter测试的能力的Maven 插件有关更改信息,请参阅变更日志 。这个插件需要 1.8 或者更高版本,自 2.2.0 #Basic 用法将插