龙空技术网

实战Java发包到远程maven仓库

Java那点事儿 226

前言:

此刻咱们对“maven远程仓库地址”大体比较看重,咱们都需要学习一些“maven远程仓库地址”的相关文章。那么小编也在网上网罗了一些对于“maven远程仓库地址””的相关知识,希望小伙伴们能喜欢,兄弟们一起来学习一下吧!

一、前言

Maven是一个Java项目的管理和构建工具,Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。

Maven中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。中央仓库包含了绝大多数流行的开源Java构件,当我们需要使用某个构建功能时,我们只需要在pom文件引入其maven坐标即可。

本文我们讲解如何把自己的jar发布到maven中央仓库里面,供外网其他用户使用。

注册Sonatype账号

登录 issues.sonatype.org/secure/Sign… 注册一个账号

创建一个issue

菜单栏->Create 弹出创建界面,Project选择Community Support - Open Source Project Repository Hosting (OSSRH) 。Issue Type选择 New Project。 Group Id填写maven坐标的Group Id。

注意:申请一个Group Id后,就可以发布不同的artifactId对应的jar。

发包安装 gpg

brew install gnupg

创建并查看自己的 key

gpg --gen-key # 创建自己的key

gpg --list-secret-keys # 查看自己的key

推送key到签名服务器

gpg --keyserver keys.gnupg.net --send-keys xxxxx gpg --keyserver keys.gnupg.net --recv-keys xxxxx gpg --keyserver keyserver.ubuntu.com --send-keys xxxxx gpg --keyserver keyserver.ubuntu.com --recv-keys xxxxx

配置pom文件

在要发布的包的pom文件里面,添加如下插件:

 <plugins>      <plugin>        <artifactId>nexus-staging-maven-plugin</artifactId>        <configuration>          <autoReleaseAfterClose>true</autoReleaseAfterClose>          <nexusUrl>;/nexusUrl>          <serverId>ossrh</serverId>        </configuration>        <extensions>true</extensions>        <groupId>org.sonatype.plugins</groupId>        <version>1.6.7</version>      </plugin>      <plugin>        <artifactId>maven-compiler-plugin</artifactId>        <configuration>          <encoding>UTF-8</encoding>          <source>1.8</source>          <target>1.8</target>        </configuration>        <version>${maven-compiler-plugin.version}</version>      </plugin>      <plugin>        <artifactId>maven-resources-plugin</artifactId>        <configuration>          <encoding>UTF-8</encoding>        </configuration>        <version>${maven-resources-plugin.version}</version>      </plugin>      <plugin>        <artifactId>maven-source-plugin</artifactId>        <executions>          <execution>            <goals>              <goal>jar</goal>            </goals>            <id>attach-sources</id>          </execution>        </executions>        <version>${maven-source-plugin.version}</version>      </plugin>      <plugin>        <artifactId>maven-surefire-plugin</artifactId>        <configuration>          <skipTests>true</skipTests>        </configuration>        <groupId>org.apache.maven.plugins</groupId>        <version>${maven-surefire-plugin.version}</version>      </plugin>      <plugin>        <artifactId>maven-jar-plugin</artifactId>        <configuration>          <archive>            <manifest>              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>            </manifest>          </archive>        </configuration>        <groupId>org.apache.maven.plugins</groupId>        <version>${maven-jar-plugin.version}</version>      </plugin>      <plugin>        <artifactId>maven-javadoc-plugin</artifactId>        <configuration>          <charset>UTF-8</charset>          <docencoding>UTF-8</docencoding>          <encoding>UTF-8</encoding>          <links>            <link>;/link>          </links>          <show>public</show>        </configuration>        <executions>          <execution>            <goals>              <goal>jar</goal>            </goals>            <id>attach-javadoc</id>          </execution>        </executions>        <groupId>org.apache.maven.plugins</groupId>        <version>${maven-javadoc-plugin.version}</version>      </plugin>      <plugin>        <artifactId>maven-gpg-plugin</artifactId>        <executions>          <execution>            <configuration>              <gpgArguments>                <arg>--pinentry-mode</arg>                <arg>loopback</arg>              </gpgArguments>            </configuration>            <goals>              <goal>sign</goal>            </goals>            <id>sign-artifacts</id>            <phase>verify</phase>          </execution>        </executions>        <groupId>org.apache.maven.plugins</groupId>        <version>${maven-gpg-plugin.version}</version>      </plugin>    </plugins>复制代码
执行发布命令

切换到要发的包的目录,执行: mvn clean deploy -Dgpg.passphrase=自己的gpg的密码

等待发布完毕,之后24小时后,会在mvnrepository.com/repos/centr… 搜到自己的包。

标签: #maven远程仓库地址