发布依赖到maven仓库

maven中央仓库是一个开放的仓库,所以我们也可以把自己开发的jar推送到远程仓库,这样可以直接引入pom依赖使用我们的库。

准备工作

● 需要一个github账号(程序员必备)
● 网络代理(涉及到的网站通常没版本在国内直接访问,所以最好使用代理)

其他不需要准备什么了,按照以下的步骤依次执行就行。
主要流程:在github上创建项目 - 注册sonatype账号 - 项目申请 - 安装PGP - 修改仓库信息 - 推送到maven仓库。

在github上创建自己的项目

创建一个项目,设置成public即可。

注册sonatype账号

https://issues.sonatype.org/secure/Signup!default.jspa
发布依赖到maven仓库_第1张图片

注册的信息没有特殊要求,一般和github账号保持一致,也容易记。
这个网站和我们平常用的jira一样,方便协同合作。

项目申请

新建一个【Community Support - Open Source Project Repository Hosting (OSSRH)】类型的问题,主要用于验证github项目是否有效。
发布依赖到maven仓库_第2张图片

这个页面中需要填group.id等信息,如下:
发布依赖到maven仓库_第3张图片

Group Id是自己域名的反写,如果没有域名可以使用github地址,例如:io.github.casuallc。
提示:https://casuallc.github.io/ 这个地址是基于github创建的自己博客的地址,如果没有可以创建下。

Project URL 是github上的项目地址:https://github.com/casuallc/admq-spring-boot-starter
SCM url是git地址:https://github.com/casuallc/admq-spring-boot-starter.git

填写完成后,会有人在这个问题的评论里联系你。

验证Github项目有效性

进入创建的问题,大概等几分钟后就有机器人联系你的,会留下以下的评论。
发布依赖到maven仓库_第4张图片

这个是让你在github上创建一个空的项目,创建完评论下就行(不评论估计也行,,)。

之后在创建的问题下会有如下评论,表示你已经可以准备发布项目到maven仓库了。
发布依赖到maven仓库_第5张图片

安装GPG

这个工具是用来加密构建的jar、pom、source和doc的,理论上是必须的,但是我没验证。可以先跳过,如果后边有报错再安装也行。
https://gpg4win.org/ 在这里可以下载对应操作系统安装包,我是在window下安装的,直接点点点就好了。。。
这里有一点需要注意的是,这个网站会让你选择是不是捐赠,有钱的话就捐点,没钱的话不捐也行。
发布依赖到maven仓库_第6张图片

安装完成后打开,在【文件】中选择【New OpenPGP Key Pair…】
发布依赖到maven仓库_第7张图片

名字、邮件地址和github上的保持一致吧。
创建完成后:
发布依赖到maven仓库_第8张图片

然后右键创建好的证书,选择【在服务器上发布】。

修改项目License信息

这个不是必须的,但通常会在pom中添加Apache License信息和一些用户信息。

<licenses>
    <license>
      <name>Apache License, Version 2.0name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txturl>
      <distribution>repodistribution>
    license>
  licenses>
  <scm>
    <connection>https://github.com/casuallc/admq-spring-boot-starter.gitconnection>
    <url>https://github.com/casuallc/admq-spring-boot-starterurl>
  scm>
  <developers>
    <developer>
      <name>clookername>
      <email>[email protected]email>
      <roles>
        <role>Developerrole>
      roles>
      <timezone>+8timezone>
    developer>
  developers>

添加仓库和认证信息信息
在项目的pom.xml中添加以下内容

<profiles>
  <profile>
    <id>releaseid>
    <build>
      <plugins>
        <plugin>
          <artifactId>maven-source-pluginartifactId>
          <executions>
            <execution>
              <id>attach-sourcesid>
              <goals>
                <goal>jargoal>
              goals>
            execution>
          executions>
        plugin>
        <plugin>
          <artifactId>maven-javadoc-pluginartifactId>
          <version>${maven-javadoc-plugin.version}version>
          <executions>
            <execution>
              <id>attach-javadocsid>
              <goals>
                <goal>jargoal>
              goals>
            execution>
          executions>
          <configuration>
            <source>8source>
            <doclint>nonedoclint>
          configuration>
        plugin>
        <plugin>
          <groupId>org.apache.maven.pluginsgroupId>
          <artifactId>maven-gpg-pluginartifactId>
          <version>1.6version>
          <executions>
            <execution>
              <id>sign-artifactsid>
              <phase>verifyphase>
              <goals>
                <goal>signgoal>
              goals>
            execution>
          executions>
        plugin>
        <plugin>
          <groupId>org.sonatype.pluginsgroupId>
          <artifactId>nexus-staging-maven-pluginartifactId>
          <version>${nexus-staging-maven-plugin.version}version>
          <extensions>trueextensions>
          <configuration>
            <serverId>ossrhserverId>
            <nexusUrl>https://s01.oss.sonatype.org/nexusUrl>
            <autoReleaseAfterClose>trueautoReleaseAfterClose>
          configuration>
        plugin>
      plugins>
    build>
  profile>
profiles>

在maven的settings.xml中添加sonatype上注册的账户信息。

<server>
  <id>ossrhid>
  <username>clookerusername>
  <password>xxxxpassword>
server>

注意:项目pom文件中org.sonatype.plugins插件下的serverId要和maven settings.xml中的id保持一致。

推送项目到maven仓库

执行 maven clean deploy -Prelease
发布依赖到maven仓库_第9张图片

org.sonatype.plugins 这个插件会自动推送到maven仓库,然后执行close、release操作,不需要手动在https://s01.oss.sonatype.org/上执行了。
之前的流程:
登录https://s01.oss.sonatype.org/,用户名密码和sonatype一样
选择:Staging Repositories
刷新后,选择刚才自己提交的项目,依次点击:Close和Release。
发布依赖到maven仓库_第10张图片

查看自己的项目

等待一段时间后就能在maven仓库看到自己的项目了,我这里是推送成功就能看到了。
https://s01.oss.sonatype.org/content/repositories/releases/io/github/casuallc/admq-spring-boot-starter/
发布依赖到maven仓库_第11张图片

其他

需要注意的是release的版本不能相同,也就是已经release的jar就不能修改了,所以每次release需要修改版本号。
如果出现401、403等问题,通常是GPG没有安装好,或者maven-gpg-plugin插件的版本不对,或者是在sonartype上注册账号需要等一段时间才会生效。

你可能感兴趣的:(Maven,maven,github,java)