maven的中央存储库_部署到Maven中央存储库

maven的中央存储库

您需要使您的Java库可公开访问吗? 您的项目托管在GitHub上吗? 您是否喜欢“将所有功能都部署到Maven Central Repository”按钮的想法? 我将展示如何使用maven-release-plugin进行设置 。 源代码托管在GitHub上,因此还将描述对源代码控制的SSH访问。

为项目设置环境需要采取各种步骤。 我遵循了SonaType官方指南中的许多步骤,因此在需要时会参考它。 但是,本指南还介绍了配置“部署到Maven Central存储库”按钮不需要的许多技术。

考虑

我的第一种方法是创建代表“部署到Maven Central”按钮的Jenkins作业。 对于我来说,这个想法比从我的开发机器推动来的要干净得多。 我几乎没有尝试过,但是当maven-release-plugin将版本更新推送到GitHub时,无法使Jenkins SSH Agent插件注册我的SSH身份。 因此,非常简单的Linux Bash脚本涉及两个步骤。

1.创建SonaType JIRA票证以注册您的groupId

SonaType驱动最大的Nexus存储库之一。 必须先在此处部署Java工件,然后才能将其同步到Maven Central存储库。 为了将Java库发布到SonaType Nexus存储库中,需要JIRA票证。 SonaType指南包含有关如何创建它的详细说明。

选择反映您的顶级域的Maven groupId。 它通常与Java主程序包相同(例如com.google ,而不是com.google.guava )。 这是因为您不想为您的域/主包/ groupId下的每个项目/库创建JIRA票证。 这里是有关Java包命名约定的更多信息。

2.从SonaType OSS pom.xml继承您的Maven工件

SonaType父POM包含

  • SonaType Nexus存储库的URL
  • Maven插件的配置
    • Enforcer插件
<parent><groupId>org.sonatype.oss</groupId><artifactId>oss-parent</artifactId><version>9</version>
</parent>

该父POM的存在很方便,因为否则您将需要在POM中指定所有插件。 唯一的问题是插件版本已经过时,因此我决定以这种方式覆盖POM中的某些版本:

<pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-gpg-plugin</artifactId><version>1.5</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-release-plugin</artifactId><version>2.4.2</version></plugin></plugins>
</pluginManagement>

关键版本更新是GPG插件之一,因为更新版本具有有关GPG签名一节所述的便捷功能。

3.配置Maven工件的GPG签名

由于Maven Central存储库的安全策略,因此需要这样做。 包括各个子步骤:

  • 安装GnuPG工具
  • 生成密钥对
  • 分配您的公钥
  • settings.xml (您的本地存储库配置)中设置工件的签名。
<profiles><profile><id>sonatype-oss-release</id><properties><gpg.keyname>F21879F3</gpg.keyname><gpg.passphrase>*********</gpg.passphrase><gpg.defaultKeyring>false</gpg.defaultKeyring><gpg.useagent>true</gpg.useagent><gpg.lockMode>never</gpg.lockMode><gpg.homedir>/home/lkrnac/.gnupg</gpg.homedir><gpg.publicKeyring>/home/lkrnac/.gnupg/pubring.gpg</gpg.publicKeyring><gpg.secretKeyring>/home/lkrnac/.gnupg/secring.gpg</gpg.secretKeyring></properties></profile>
</profiles>

F21879F3是我的公共GPG密钥ID。 gpg –list-keys命令将为您列出它。 Passphase是您的GPG专用密钥的密码。 .gnupg文件夹通常在您的主目录中生成。

4.设置SonaType Nexus存储库的凭据

需要推送到SonaType Nexus存储库。 与SonaType JIRA凭据相同。 再次在settings.xml中

<servers><server><id>sonatype-nexus-snapshots</id><username>lkrnac</username><password>*************</password></server><server><id>sonatype-nexus-staging</id><username>lkrnac</username><password>*************</password></server>
</servers>

6.设置对GitHub的SSH访问

请遵循以下子步骤:

  • 生成新的SSH密钥
  • 将公共SSH密钥添加到GitHub

7.创建“部署到Maven Central”按钮

Maven-release-plugin需要将版本更新推送/签到源控制系统并标记修订。 就我而言,代码托管在GitHub上。 因此,在调用maven-release-plugin的目标之前,我需要注册我的SSH身份(在上一步中生成)。 这是通过位于pom.xml旁边的bash脚本maven-central-deploy.sh完成的:

!/bin/bash
# Deploy maven artefact in current directory into Maven central repository 
# using maven-release-plugin goalsread -p "Really deploy to maven cetral repository  (yes/no)? "if ( [ "$REPLY" == "yes" ] ) thenssh-add ~/.ssh/lubos.krnacssh-add -lmvn release:clean release:prepare release:perform -B -e | tee maven-central-deploy.logssh-add -D
elseecho 'Exit without deploy'
fi

使脚本可执行

chmod +x maven-central-deploy.sh

8.按下“部署到Maven Central”按钮

赶紧跑

./maven-central-deploy.sh

确认并根据需要输入SSH私钥通行证。

9.通过SonaType Nexus存储库发布工件

将工件推送到SonaType Nexus存储库时。 您需要释放它 。 最后,您需要在开始创建的SonaType JIRA问题中添加评论,然后等到有人检查您的工件并设置与Maven Central的同步。 当然,JIRA的一部分只需要做一次。

链接

  • 以这种方式配置的示例项目托管在GitHub上 。 (这是很小的测试库)。

参考:在Lubos Krnac Java博客博客上,从我们的JCG合作伙伴 Lubos Krnac 部署到Maven Central Repository 。

翻译自: https://www.javacodegeeks.com/2014/03/deploy-to-maven-central-repository.html

maven的中央存储库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 回到顶部,jquery如何实现点击网页回到顶部效果?(图文+视频)

本篇文章主要给大家介绍如何用jquery代码实现网页回到顶部的效果。我们在浏览各大网站页面时&#xff0c;想必大家肯定都遇到过&#xff0c;当阅览一个长页面时&#xff0c;拉到下面部分会出现类似回到顶部的按钮特效吧。这种点击回到顶部的功能特效&#xff0c;可以很大程度上…

【渝粤教育】国家开放大学2019年春季 2114人体解剖生理学 参考试题

试卷代号&#xff1a;2114 人体解剖生理学 试题 2019年7月 一、单项选择题&#xff08;每题2分&#xff0c;共80分&#xff09; 1.上皮组织的特点不包括&#xff08; &#xff09;。 A.包括被覆上皮和腺上皮 B.分布于体表及有腔器官的腔面 C.含丰富血管、神经 D.具有保护作用 E…

rs485中继器产品功能特点及应用领域介绍

中继器是连接网络线路的一种装置&#xff0c;常用于两个网络节点之间物理信号的双向转发工作。rs485/422中继器是最简单的网络互联设备&#xff0c;主要完成物理层的功能&#xff0c;负责在两个节点的物理层上按位传递信息&#xff0c;完成信号的复制、调整和放大功能&#xff…

【渝粤教育】国家开放大学2019年春季 2441经济数学基础1 参考试题

试卷代号&#xff1a;2441 2 0 1 9年春季学期期末统一考试 经济数学基础1 试题 2019年7月 导数基本公式&#xff1a; 积分基本公式&#xff1a; ( 一、单项选择题&#xff08;每小题4分&#xff0c;本题共20分&#xff09; 1&#xff0e;下列函数中为奇函数的是( )&#xff0…

使用JDK 13查看TLS配置

JDK 13 Early Access Build 16现在可用&#xff0c;它带来的有趣的功能之一是能够使keytool命令行工具显示当前系统的TLS配置信息 。 这比尝试在单独的文档中查找受支持的TLS信息并使该信息与自己的JDK供应商和版本更容易。 要查看JDK 13 Early Access Build 16的TLS配置详细信…

php只显示一部分文章,typecho同一个页面下调用不同分类的文章但是却只显示一个分类文章...

typecho同一个页面下调用不同分类的文章但是却只显示一个分类文章作者&#xff1a;佚名来源&#xff1a;爱好者时间&#xff1a;2018-04-30问题描述&#xff1a;同页面调用分类下文章&#xff0c;只显示一第一个分类下的文章在一个页面中&#xff0c;反复调用下面这段代码&…

串口服务器常见异常情况排除方法介绍

串口服务器就像一台带CPU、实时操作系统和TCP/IP协议的微型电脑&#xff0c;方便在串口和网络设备中传输数据。在使用串口服务器的过程中&#xff0c;一般按照操作手册进行操作基本上可以解决问题&#xff0c;但是&#xff0c;在实际操作中还是会出现一些异常故障&#xff0c;今…

【渝粤教育】国家开放大学2019年春季 2712园艺基础 参考试题

试卷代号&#xff1a;2712 园艺基础 试题 2019年7月 一、单项选择题&#xff08;每题3分&#xff0c;共30分&#xff09; 1&#xff0e;由种子萌发后胚根向下生长形成的根是( )。 A&#xff0e;块根 B&#xff0e;侧根 C&#xff0e;主根 D&#xff0e;不定根 2&#xff0e;补光…

【渝粤教育】国家开放大学2019年春季 3717天然气管道长输技术 参考试题

科目编号&#xff1a;3717 座位号 2018-2019学年度第二学期期末考试 天然气管道长输技术 试题 2019年 5 月 一、填空题&#xff08;本大题共5空&#xff0c;每空5分&#xff0c;共计25分&#xff09; 1&#xff0e;流体在管道中的流态划分为两大类&#xff1a;和。 2&#xff…

ckfinder php 配置,php – 在Laravel 5中为CKEditor设置路径以使用CKFinder

您好我正在尝试将CKFinder与CKEditor集成到一个laravel项目中.我在CKEditor的config.js文件中进行了以下设置&#xff1a;CKEDITOR.editorConfig function( config ) {// Define changes to default configuration here. For example:// config.language fr;config.uiColor …

工业级光模块是什么?

可能很多人都不知道&#xff0c;光模块是所有网络连接部署中不可或缺的组成部分。一个产品的出现往往与市场需求相对应&#xff0c;我们平时所接触到的光模块大部分只能满足商业数据中心的网络部署&#xff0c;那么大型工业的网络部署该如何满足实现呢?在这种情况下&#xff0…

【渝粤教育】国家开放大学2019年春季 770房地产估价 参考试题

编号&#xff1a;0770 座位号 2018-2019学年度第二学期末考试 房地产估价 试 题 2019年7月 一、填空题&#xff08;每空3分&#xff0c;共30分&#xff09; 1、建筑密度是指一块土地上所有建筑物的 占该块土地 的比例。 2、在实际中运用假设开发法估价的结果的可靠性如何&…

jvm开源_开源JVM Sampling Profiler

jvm开源众所周知 &#xff0c;大多数现有的采样Java Profiler都必须在安全的地方进行堆栈跟踪收集。 诸如采样探查器之类的探查器就是这种情况&#xff0c;它使用SUN / Oracle管理代理来收集其堆栈跟踪。 这种方法的问题在于&#xff0c;由于不是程序中的每个点都不是安全点&am…

【渝粤教育】国家开放大学2019年春季 97纳税筹划 参考试题

试卷代号&#xff1a;[0097] 座位号 2018-2019学年度第二学期期末考试 纳税筹划 试题 2019年 7 月 单项选择题&#xff08;将每题四个选项中的唯一正确答案的字母序号填入括号。每小题2分&#xff0c;共20分&#xff09; 1.避税最大的特点是它的&#xff08; &#xff09;。 …

discuz和php的区别,discuz和phpwind优劣比较

discuz!(简称dz)和phpwind(简称pw)是国内最著名的两个PHP论坛系统&#xff0c;随着它们相继宣布开源以后&#xff0c;在各方面&#xff0c;不管技术上&#xff0c;还是功能上&#xff0c;还是界面上&#xff0c;都有了长足的发展&#xff0c;声威大振&#xff0c;远非国外那些功…

串口服务器常见五大问题解决方案

串口服务器提供串口转网络功能&#xff0c;使得串口设备能够立即具备TCP/IP网络接口功能&#xff0c;连接网络进行数据通信&#xff0c;极大的扩展串口设备的通信距离。为了更方便我们操作和使用&#xff0c;今天飞畅科技的小编来为大家介绍下串口服务器常见五大问题解决方案&a…

【渝粤题库】陕西师范大学200641高等数学作业(高起专、专升本)

《高等数学&#xff08;一&#xff09;》作业 一、求下列函数的定义域 &#xff08;1&#xff09;&#xff1b; &#xff08;2&#xff09;。 &#xff08;3&#xff09; 二、用区间表示变量的变化范围&#xff1a; (1)&#xff1b; (2) (3&#xff09;&#xff1b; 三、求下…

为特使构建控制平面的指南-为可插入性构建

Envoy是一个非常强大的软件&#xff0c;每天都会向社区提出新的用例和新的贡献 。 尽管Envoy的核心非常稳定&#xff0c;但它基于可插入的过滤器体系结构&#xff0c;因此人们可以为不同的L7协议编写新的编解码器或添加新的功能。 目前&#xff0c;Envoy过滤器是用C 编写的&…

【渝粤教育】广东开放大学 21秋期末考试 公共政策学10855K1

判断题 1、公共政策过程大致包括社会问题、问题确认、政策规划、政策采纳、政策执行和效果评估六个环节。&#xff08;2 分&#xff09; 正确 错误 2、政党对政策制定的影响往往是靠竞争来实现的。&#xff08;2 分&#xff09; 正确 错误 3、在一定条件下&#xff0c;物质性政…

php 获取数据库中的信息,php获取数据库中数据的实现方法

废话不多说&#xff0c;直接上代码header("Content-type:text/html;charsetutf-8");//字符编码设置$servername "localhost";$username "root";$password "root";$dbname "web";// 创建连接$con mysqli_connect($server…