发布依赖到maven中央仓库

2023-11-12

目录

前言

一.jira

1.注册

2.新建问题

 3.新建关键表单配置

 4.问题页面

 5.Group id 对应的 域名认证

 二.gpg秘钥配置

1gpg下载

  三.maven项目配置,也可以看官方文档

1.setting.xml

2.pom.xml

 四.发布


前言

先讲下碰到的问题。后面再上具体流程

Group id有自己域名的配置自己域名,没有自己的域名的可以配置 io.github.${github用户名} ,后面审批的时候需要对Group id 对应的域名进行认证。网上有些教程让配置 com.github ,目前 com.github 已不可用。

问题:报错 Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (sign-artifacts) on project  ->  'gpg2' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

原因:可能是因为我安装的是window版,对应的命令是gpg 而不是gpg2,官网让配置gpg2

解决: setting.xml配置gpg.executable 改为 gpg。

问题: Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar ->  乱码

原因:maven构建用的是utf-8

解决:Settings->Build->Build Tools->Maven->Runner->VM Options 配置为 

-Dfile.encoding=GBK

问题: Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar ->  错误: 未知标记: date

原因:java doc 没有 @date 的注释标记

解决:

方法1: java doc 插件添加自定义标记

   <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.9.1</version>
                    <configuration>                 
                        <aggregate>true</aggregate>
                        <tags>
                            <tag>
                                <name>date</name>
                                <placement>a</placement>
                                <head>日期</head>
                            </tag>
                        </tags>   
                    </configuration>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

方法2: 取消检查

<plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.9.1</version>
                    <configuration>
                        <aggregate>true</aggregate>
                        <additionalJOptions>
                            <additionalJOption>-Xdoclint:none</additionalJOption>
                            <additionalparam>-Xdoclint:none</additionalparam>
                        </additionalJOptions>
                    </configuration>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                    </plugin>

一.jira

1.注册

进入 Sign up for Jira - Sonatype JIRA  注册一个账号,注册完可能会让选语言,我选的中文。

2.新建问题

点击 新建,英文的话应该是 create

 3.新建关键表单配置

项目选 Community Suppor t
问题类型选 New Project 

Group Id 有自己的域名可以填写自己的域名,没有域名的填写 io.github.${githubUsername},后面审批的时候会要求对此处填写的域名进行认证。我用的是 io.github有些文档讲的是用 com.github ,但是目前 com.github 已无效。我的 githubUserName 是g5zhu5896

Project URL 有填写github上的项目地址,如https://github.com/g5zhu5896/extension-parent

SCM url 填的是带git的地址,如https://github.com/g5zhu5896/extension-parent

 4.问题页面

新建完问题后会进入问题页面 https://issues.sonatype.org/browse/OSSRH-90104 OSSRH-90104issue id ,issue id 会被用于后面的域名认证。也可以通过 问题->最近的问题 进入问题页面

 5.Group id 对应的 域名认证

用上面的 issue id 为名在自己的github上建一个临时且公开的仓库。通过这个临时仓库向 jira 证明这个 github 账号是自己的。(如果是用自己的域名作为Group id, 好像是需要配置一个 txt 文件给 jira 访问)

 二.gpg秘钥配置

1gpg下载

进入 gpg官网 下载gpg,此处我下载得是window版的。安装的时候一直下一步就好

2.秘钥生成并发布

打开 gpg 可视化软件 Kleopatra。

点击 菜单栏->文件->New OpenPGP Key Pair

输入邮箱和名称,选择使用密码句保护生成的秘钥

输入密码,记住这里的密码,后面会用到。

 
右键证书选中在服务器上发布

 提示成功后就完成了。

  三.maven项目配置,也可以看官方文档

1.setting.xml

注意此处 <gpg.executable> 要根据实际情况配置,官网是配置gpg2,我配置的是gpg.

<profiles>
	   <profile>
		  <id>ossrh</id>
		  <activation>
			<activeByDefault>true</activeByDefault>
		  </activation>
		  <properties>
            <!-- 官网的此处是配置gpg2,可能因为我装的是window版的,所以需要配置gpg -->
			<gpg.executable>gpg</gpg.executable>
            <!-- 一开始以为这里配置了gpg生成秘钥时配置的密码后,发布时就可以不输入密码,结果没用,所以这里配置 the_pass_phrase 就好 -->
			<gpg.passphrase>the_pass_phrase</gpg.passphrase>
		  </properties>
		</profile>
</profiles>

 把jira 账号和密码对应填入就好

<servers>
   <server>
      <id>ossrh</id>
      <username>jira 账号</username>
      <password>jira 密码</password>
    </server>
<servers>

2.pom.xml

下面的配置基本可以照搬,我是父子工程,我直接把下面配置配到父pom.xml

 <build>
            <plugins>
                <plugin>
                    <groupId>org.sonatype.plugins</groupId>
                    <artifactId>nexus-staging-maven-plugin</artifactId>
                    <version>1.6.7</version>
                    <extensions>true</extensions>
                    <configuration>
                        <serverId>ossrh</serverId>
                        <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                        <autoReleaseAfterClose>true</autoReleaseAfterClose>
                    </configuration>
                </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.1</version>
                    <configuration>
                        <!-- 这个我不配置没问题,看情况打开 -->
                        <!--                    <javadocExecutable>${java.home}/../bin/javadoc</javadocExecutable>-->
                        <aggregate>true</aggregate>
                        <tags>
                            <tag>
                                <name>date</name>
                                <placement>a</placement>
                                <head>日期</head>
                            </tag>
                        </tags>
<!-- 下面注释打开则不会校验java doc的配置 -->
<!--                        <additionalJOptions>-->
<!--                            <additionalJOption>-Xdoclint:none</additionalJOption>-->
<!--                            <additionalparam>-Xdoclint:none</additionalparam>-->
<!--                        </additionalJOptions>-->
                    </configuration>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </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>
            </plugins>
    </build>
    <distributionManagement>
        <!--  申明打包到Maven公有仓库  -->
        <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>

groupId应该要配置成申请jira 项目的时候配置的groupId,我没试过不配置能不能正常发布。

<groupId>io.github.g5zhu5896</groupId>

 四.发布

我是直接maven deploy 就发布上去了,也可以用命令 mvn clean deploy。

发布过程中会让输入生成Gpg秘钥时 设置的密码

 如果成功则过段时间(我是直接睡觉等隔天早上)就可以从maven 中央仓库拉取发布的jar包了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发布依赖到maven中央仓库 的相关文章

随机推荐

  • spring使用xml进行声明式事务管理

  • 最全讲解磁珠

    1 磁珠的定义 磁珠是一种被动组件 用来抑制电路中的高频噪声 磁珠是一种特别的扼流圈 其成分多半为铁氧体 利用其高频电流产生的热耗散来抑制高频噪声 磁珠有时也称为磁环 EMI滤波器 铁芯等 维基百科 磁珠是滤波常用的器件 铁 镍 锌氧化物混
  • 线程池ThreadPoolExecutor之阻塞队列

    在近期的性能优化中 使用了线程池 线程池的定义如下 ExecutorService executorService new ThreadPoolExecutor threadPoolSize threadPoolMaxSize timeou
  • get请求、post请求区别

    991 GET请求一般用去请求获取数据 是无副作用的 是幂等的 POST一般作为提交数据到后台时使用 有副作用 非幂等 2 GET请求也可传参到后台 但是其参数在浏览器的地址栏的url中可见 所以隐私性安全性较差 且参数长度也是有限制的 P
  • C++(day7)

    思维导图 Vector include
  • 关于Jquery的Validate插件------rules规则说明

    Query Validate 插件为表单提供了强大的验证功能 让客户端表单验证变得更简单 同时提供了大量的定制选项 满足应用程序各种需求 该插件捆绑了一套有用的验证方法 包括 URL 和电子邮件验证 同时提供了一个用来编写用户自定义方法的
  • DevOPs介绍,这一篇就足够了

    一 什么是DevOps DevOps是一种将软件开发和IT运维进行整合的文化和运动 它的目标是通过加强软件开发 测试和运维之间的协作和沟通 使整个软件开发和交付过程更加高效 快速 安全和可靠 DevOps涵盖了从计划和设计到开发 测试 交付
  • C语言动态内存管理

    目录 1 函数栈空间 1 1栈上的内存分配 2堆上的内存分配 2 1堆区分配内存的特点 2 2申请空间的操作 2 2 1malloc 2 2 2calloc 2 2 3realloc 2 3申请空间操作的技巧 1 函数栈空间 首先我们需要清
  • 实验---采用SOM网络进行聚类

    1 SOM网络简介 自组织特征映射网络SOFM又称自组织映射网络SOM 是一种自组织竞争神经网络 一个神经网络接受外界输入模式时 将会分为不同的对应区域 各区域对输入模式具有不同的响应特征 而且这个过程是自动完成的 其特点与人脑的自组织特性
  • 快速实现M5311NBIOT MQTT通信

    NBIOT MQTT接入ONE NET云平台 一 本例程实现功能介绍 三 硬件接线图 材料清单 四 完整代码 代码解析 前言 MQTT是一种基于TCP的物联网通信协议 在物联网领域应用非常广泛 基本上所有的云平台都支持设备以MQTT协议接入
  • 如何看懂照片的直方图?

    直方图的观看规则就是 左黑右白 左边代表暗部 右边代表亮部 而中间则代表中间调 纵向上的高度代表像素密集程度 越高 代表的就是分布在这个亮度上的像素很多 上图为例 对于一张 正常 的照片来说 直方图应该是中间高两边低 amp lt img
  • 龙芯笔记

    1 用交叉编译器编译时 也会出现找不到sqlite3 h头文件的情况 需要把sqlite3 h这个头文件放到交叉编译工具目录下的 include 2 mips64el redhat linux g sqlite c lm o sql tes
  • SVM 二分类与模型评估参数

    code 正常输出中文 import io import sys sys stdout io TextIOWrapper sys stdout buffer encoding utf 8 Accuracy AUC Recall Precis
  • 电脑连接KONICA MINOLTA(柯尼卡美能达) 打印机及驱动安装

    电脑系统 Windows 7 安装的打印机型号 Konica minolta bizhub 363 驱动下载 https www konicaminolta com cn support drivers index html 打印机配置好网
  • 财务模块 - 采购、接收、应付会计分录和功能认识

    一 企业采购业务 采购业务是一般企业都会有的业务 主要包括请购 采购 接收 入库 发票 付款几个步骤 分别对应采购 库存 成本 应付以及总账模块 Oracle是财务业务一体化的系统 只要录入了相应的业务 则会自动生成相应的财务信息 1 采购
  • c#观察者模式和事件委托的联合使用

    using System using System Collections Generic using System Linq using System Text using System Threading Tasks 观察者模式和事件委
  • 人才盘点:盘活人力资本的价值

    导读 人才是企业发展的第一资源 也是推动科技进步 创新驱动和提高核心竞争力的关键因素 随着科技日新月异的发展 一些传统产业正面临深度调整甚至颠覆性改变 在这种背景下 企业更应当关注存量人才的配置合理性 培养有市场前瞻和创业精神的高素质人才
  • cookie httponly

    Java 中的JSESSIONID的cookie 默认是httponly 具体啥是httponly 设置cookie为httponly将无法被javascript读取到 所以默认情况下JavaScript是无法通过读取JSESSIONID的
  • Eclipse 导入Go项目

    用Eclipse开发Java的程序员 一想到导入项目 首先是Import 但是发现点击import后 导入不了go项目 所以采用新建的方式来导入Go项目 这个前提是要搭建好Eclipse中Go开发环境 这些有很多可以百度 这里只描述Go项目
  • 发布依赖到maven中央仓库

    目录 前言 一 jira 1 注册 2 新建问题 3 新建关键表单配置 4 问题页面 5 Group id 对应的 域名认证 二 gpg秘钥配置 1gpg下载 三 maven项目配置 也可以看官方文档 1 setting xml 2 pom