从来都是从中央仓库下载jar,这次需要向中央仓库提交jar, 利用Sonatype OSSRH可以把jar等资源提交给Maven的中央仓库。

Sonatype OSSRH介绍:

Sonatype OSSRH使用Nexus 为开源项目提供仓库管理服务,该仓库就是所谓maven的中央仓库,OSSRH允许我们向Maven中央仓库提交二进制文件。

1:提交(deploy)开发版本的二进制文件(snapshorts)

2: 阶段性的发布版本

3:发布一个release,然后同步他们到中央仓库。

初始阶段

1:注册一个JIRA账号:https://issues.sonatype.org/secure/Signup!default.jspa

2:创建一个新工程的单:https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134

只有当这个jira单的状态我resolved时,才可以提交jar包

审查要求

1:提供javadoc和source

2: 使用gpg或者pgp对文件进行签名

3: pom.xml文件

4:正确的坐标:groupId,artifactId,version

   <groupId>com.sequoiadb</groupId><artifactId>sequoiadb-driver</artifactId><version>1.12</version>

5: projectName,description,url等。

   <name>${project.groupId}:${project.artifactId}</name><description>SequoiaDB Driver Library</description><url>https://github.com/SequoiaDB/SequoiaDB</url>

6: license 信息

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

7 : 开发者信息

   <developers><developer><name>linyoubing</name><email>linyoubing@sequoiadb.com</email><organization>sequoiadb</organization><organizationUrl>http://www.sequoiadb.com</organizationUrl></developer></developers>

8: SCM信息

   <scm><connection>scm:git:https://github.com/SequoiaDB/SequoiaDB.git</connection><developerConnection>scm:git:https://github.com/SequoiaDB/SequoiaDB.git</developerConnection><url>https://github.com/SequoiaDB/SequoiaDB</url><tag>v1.12</tag></scm>

部署

可以使用多种方式部署,这是使用maven的方式

1:分布管理和认证:

我使用了maven部署插件,所以pom.xml中加入:

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

需要在maven_home/conf/settings.xml配置jira的账号和密码

<settings><servers><server><id>ossrh</id><username>your-jira-id</username><password>your-jira-pwd</password></server></servers>
</settings>

2:配置生成javadoc和sources包的插件:

 <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><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals></execution></executions></plugin>

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

在settings.xml中配置gpg的签名 :(需要先用gpg来生成)

<settings><profiles><profile><id>ossrh</id><activation><activeByDefault>true</activeByDefault></activation><properties><gpg.executable>gpg2</gpg.executable><gpg.passphrase>the_pass_phrase</gpg.passphrase></properties></profile></profiles>
</settings>

4: 使用Profile

应该javadoc和source的jar包生成也需要使用gpg来签名,所以很浪费时间,而且这些执行通常都独立于标准构建流程,所以把他们移动到一个profile.

   <profiles><profile> <id>release</id><build><plugins><plugin><groupId>org.sonatype.plugins</groupId><artifactId>nexus-staging-maven-plugin</artifactId><version>1.6.3</version><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><version>2.5</version><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><version>3.0</version><configuration><source>1.6</source><target>1.6</target></configuration></plugin><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><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</version><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals></execution></executions></plugin></plugins></build></profile>
</profiles>

提交一个snapshot版本:

1:修改version加一个-SNAPSHOT, 执行 mvn clean deploy

发布一个release版本

1:修改version 不要加-SNAPSHOT,  可以手动修改,也可以执行

mvn versions:set -DnewVersion=1.2.3

2: 执行 mvn clean deploy -P release


转载于:https://www.cnblogs.com/gaoxing/p/4359795.html

向maven中央仓库提交jar相关推荐

  1. 从maven中央仓库下载jar包

    1.安装本地jar包到maven本地仓库 mvn install:install-file:主要是将本地自定义jar安装到maven仓库,然后在pom中可以直接通过dependency的方式来引用. ...

  2. 如何向Maven中央仓库提交自己的Jar包(发布自己的Jar包到中央仓库)

    文章目录 注册账号 GPG 安装 安装 生成密钥 上传公钥 Maven配置 上传到Maven仓库 修改项目的配置,填写基本信息 执行编译命令 登录网站配置发布 项目中应用 遇到的问题解决方法 本文将介 ...

  3. maven中央仓库下载jar包

    我们平常在做项目是难免会遇到jar包丢失,错误,下载失败等情况.当系统包某个jar包找不到时,去maven的官网下载对应的jar包即可. 比如我们需要tomcat-embed-core-9.0.13. ...

  4. 如何把JAR发布到maven中央仓库

    详细描述maven中央仓库发布jar包的中间过程, 以及遇到的一些问题汇总, 尽量用文字描述清楚, 耐心看下去, 就一定会发布成功 ----Sonatype篇---- 名词解释: Sonatype N ...

  5. idea maven打jar包_Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库

    摘要 Maven 中央仓库并不支持直接上传 jar 包,因此需要将 jar 包发布到一些指定的第三方 Maven 仓库,比如:Sonatype OSSRH 仓库,然后该仓库再将 jar 包同步到 Ma ...

  6. 我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于maven中央仓库 作为一个java程序员,对ma ...

  7. 发布个人项目jar包到maven中央仓库详解

    发布个人项目jar包到maven中央仓库详解 1.在sonatype提交发布工单(Issue) sonatype是由社区支持的开源项目托管服务(Open Source Project Reposito ...

  8. 发布Jar包到Maven中央仓库(为开发开源中间件做准备)

    微信公众号:bugstack虫洞栈 沉淀.分享.成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获.目前已完成的专题有:Netty4.x实战专题案例.用Java实现JVM ...

  9. 如何将JAR包发布到Maven中央仓库?

    将jar包发布到Maven中央仓库(Maven Central Repository),这样所有的Java开发者都可以使用Maven直接导入依赖,例如fundebug-java: <!-- ht ...

最新文章

  1. Linux下查找Nginx配置文件位置
  2. WSUS部署中...
  3. Nginx映射本地json文件,配置解决浏览器跨域问题,提供前端get请求模拟数据
  4. 拖链电缆 机器人电缆_trvv高柔性拖链电缆
  5. Web前端开发笔记——第三章 CSS语言 第六节 CSS定位
  6. 收购Roambi,SAP欲领导商务分析云迁移全球市场
  7. 【大数据】Spark面试100问 | CSDN博文精选
  8. 74ls90设计十进制计数器电路图_PLC控制系统的设计与调试步骤你知多少?
  9. 程序员如何借助 AI 开挂股票神预测?| 技术头条
  10. (二)javascript中int和string转换
  11. C语言 二维数组(指针)动态分配和释放(转)
  12. 你是否了解新媒体,新媒体简介
  13. c语言中中不同类型数据间的混合运算
  14. 浅析计算机用户身份识别技术,浅谈网络安全之身份认证技术
  15. 什么是内卷?什么是囚徒困境?故事叙述
  16. HBase的regionServer
  17. android跳过网络连接,绕过Android Android的Wi-Fi热点5设备连接限制 | MOS86
  18. 兆骑科创创业大赛,线上直播路演,高层次人才引进服务平台
  19. EdgeX(1)研究 开源边缘计算框架 EdgeX Foundry
  20. 台达DOP系列触摸屏与电脑通讯不上时,如何进入系统设置画面修改系统设置从而正常通讯?

热门文章

  1. 电路基础知识 -- 三态
  2. Java开发:什么是序列化?
  3. 加密货币与智能合约的隐私 (四):私人和许可的分类帐
  4. 区块链学堂(5):Geth 安装
  5. RedHat6配置网络yum源
  6. Hyperledger Fabric 排序服务核心原理和工作过程
  7. 洛谷 P4245 【模板】MTT
  8. JZOJ 3853. 【NOIP2014八校联考第2场第2试9.28】帮助Bsny(help)
  9. 合作模式歌利亚机器人_智能时代挑战下的机器人教育新方向!
  10. python turtle画海绵宝宝_24.1. turtle — 海龟绘图 — Python 3.6.12 文档