程序员

Maven中央仓库jar包发布全流程详解

2020-08-26  本文已影响0人  dothetrick

需要4步

1.创建sonatype账号,并提交工单

1.1 打开 https://issues.sonatype.org 注册账号

1.2 创建工单

1.2.1 如何使用个人域名作为groupId

2. 设置gpg

2.1 gpg是什么?

2.2 安装gpg

2.3 生成公钥

2.4 上传公钥

gpg --keyserver http://keys.openpgp.org:11371 --send-keys C1A767A2

3. maven环境配置

3.1 将sonatype和gpg信息写入settings.xml

<servers>
    <server>
        <id>ossrh</id>
        <username>name</username>
        <password>password</password>
    </server>
</servers>
<properties>
    <gpg.executable>gpg可执行命令路径</gpg.executable>
    <gpg.passphrase>生成时填写的passphrase</gpg.passphrase>
</properties>

3.2 项目中的pom配置

3.2.1 deploy时的信息包括证书,开发者信息,仓库地址和发布地址
<licenses>
    <license>
        <name>The Apache Software License, Version 2.0</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        <distribution>actable</distribution>
    </license>
</licenses>

<developers>
    <developer>
        <name>dothetrick</name>
        <email>flyinthewar@126.com</email>
        <organization>dothetrick</organization>
    </developer>
</developers>

<scm>
    <tag>master</tag>
    <url>git@github.com:dothetrick/binlogportal.git</url>
    <connection>git@github.com:dothetrick/binlogportal.git</connection>
    <developerConnection>git@github.com:dothetrick/binlogportal.git</developerConnection>
</scm>

<distributionManagement>
    <snapshotRepository>
        <id>ossrh</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>

    <repository>
        <id>ossrh</id>
        <name>Nexus Release Repository</name>
        <url>http://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
</distributionManagement>
3.2.2 要用到的maven插件
3.2.3 maven-gpg-plugin报错的处理
use-agent
pinentry-mode loopback
allow-loopback-pinentry
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <additionalOptions>
                    <additionalOption>-Xdoclint:none</additionalOption>
                </additionalOptions>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.2</version>
    <configuration>
        <archive>
            <manifestEntries>
                <Built-By>dothetrick</Built-By>
            </manifestEntries>
        </archive>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <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-gpg-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <id>sign-artifacts</id>
            <phase>package</phase>
            <goals>
                <goal>sign</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.sonatype.plugins</groupId>
    <artifactId>nexus-staging-maven-plugin</artifactId>
    <version>1.6.8</version>
    <extensions>true</extensions>
    <configuration>
        <serverId>ossrh</serverId>
        <nexusUrl>https://oss.sonatype.org/</nexusUrl>
        <autoReleaseAfterClose>false</autoReleaseAfterClose>
    </configuration>
</plugin>

4. deploy

以上内容属个人学习总结,如有不当之处,欢迎在评论中指正

上一篇下一篇

猜你喜欢

热点阅读