发布依赖到maven中央仓库

目录

前言

一.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包了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值