• 从零开始把项目发布到maven仓库中心


    sonatype准备操作

    1. group id 如果你有com域名的所有权可以直接使用,如果不符合可以使用com.github.{账号名来定义}
    2. 如果有问题管理员会在下方留言通知你如下文(github所有权验证)
    

    然后等会有类似的通知发出,并按通知进行操作。

    When choosing a groupId that reflects your project hosting, in this case, something like io.github.ants-double or com.github.ants-double would be correct. Also, please create a public repo called OSSRH-52139 to verify github account ownership.
    

    然后你就创建对应的公有仓库,等创建成功后在些回复一下,看到如下评论前期准备工作就正式结束了

    com.github.ants-double has been prepared, now user(s) antsdouble,Ants-double can:
    
    Deploy snapshot artifacts into repository https://oss.sonatype.org/content/repositories/snapshots
    Deploy release artifacts into the staging repository https://oss.sonatype.org/service/local/staging/deploy/maven2
    Release staged artifacts into repository 'Releases'
    please comment on this ticket when you promoted your first release, thanks
    

    GPG的准备工作

    gpg --keyserver http://keys.gnupg.net:11371/ --send-keys [xxxxxxxxx] 其中的[xxxxxxxxx],可用gpg --list-keys显示出来。
    ```

    Maven准备工作

    • 更新setting.xml文件添加仓库

      <server>
        <id>sonatype-nexus-snapshots</id>
        <username>Sonatype账号</username>
        <password>Sonatype密码</password>
      </server>
      <server>
        <id>sonatype-nexus-staging</id>
        <username>Sonatype账号</username>
        <password>Sonatype密码</password>
      </server>
      
      
    • 修改pom.xml文件 增加许可协议、SCM信息、开发者信息 (最后附完整的pom.xml文件)

      <licenses>
              <license>
                  <name>The Apache Software License, Version 2.0</name>
                  <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
                  <distribution>repo</distribution>
              </license>
          </licenses>
          <scm>
              <tag>master</tag>
              <url>git@github.com:Ants-double/mianhua.git</url>
              <connection>scm:git:git@github.com:Ants-double/mianhua.git</connection>
              <developerConnection>scm:git:git@github.com:Ants-double/mianhua.git</developerConnection>
          </scm>
          <developers>
              <developer>
                  <name>ants-double</name>
                  <email>ants_double@yeah.net</email>
                  <organization>ants-double</organization>
              </developer>
          </developers>
      
    • 添加相关插件和仓库信息

      <build>
                      <plugins>
                          <!-- Source -->
                          <plugin>
                              <groupId>org.apache.maven.plugins</groupId>
                              <artifactId>maven-source-plugin</artifactId>
                              <version>2.2.1</version>
                              <executions>
                                  <execution>
                                      <phase>package</phase>
                                      <goals>
                                          <goal>jar-no-fork</goal>
                                      </goals>
                                  </execution>
                              </executions>
                          </plugin>
                          <!-- Javadoc -->
                          <plugin>
                              <groupId>org.apache.maven.plugins</groupId>
                              <artifactId>maven-javadoc-plugin</artifactId>
                              <version>2.9.1</version>
                              <configuration>
                                  <encoding>${chartset.UTF8}</encoding>
                                  <aggregate>true</aggregate>
                                  <charset>${chartset.UTF8}</charset>
                                  <docencoding>${chartset.UTF8}</docencoding>
                              </configuration>
                              <executions>
                                  <execution>
                                      <id>attach-javadocs</id>
                                      <phase>package</phase>
                                      <goals>
                                          <goal>jar</goal>
                                      </goals>
                                      <configuration>
                                          <additionalparam>-Xdoclint:none</additionalparam>
                                      </configuration>
                                  </execution>
                              </executions>
                          </plugin>
                          <!-- GPG -->
                          <plugin>
                              <groupId>org.apache.maven.plugins</groupId>
                              <artifactId>maven-gpg-plugin</artifactId>
                              <version>1.5</version>
                              <executions>
                                  <execution>
                                      <phase>verify</phase>
                                      <goals>
                                          <goal>sign</goal>
                                      </goals>
                                  </execution>
                              </executions>
                          </plugin>
                          <!--Compiler-->
                          <plugin>
                              <groupId>org.apache.maven.plugins</groupId>
                              <artifactId>maven-compiler-plugin</artifactId>
                              <version>3.0</version>
                              <configuration>
                                  <source>1.8</source>
                                  <target>1.8</target>
                                  <fork>true</fork>
                                  <verbose>true</verbose>
                                  <encoding>UTF-8</encoding>
                                  <showWarnings>false</showWarnings>
                              </configuration>
                          </plugin>
                          <!--Release-->
                          <plugin>
                              <groupId>org.apache.maven.plugins</groupId>
                              <artifactId>maven-release-plugin</artifactId>
                              <version>2.5.1</version>
                          </plugin>
                      </plugins>
                  </build>
                  <distributionManagement>
                      <snapshotRepository>
                          <id>sonatype-nexus-snapshots</id>
                          <name>Sonatype Nexus Snapshots</name>
                          <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
                      </snapshotRepository>
                      <repository>
                          <id>sonatype-nexus-staging</id>
                          <name>Nexus Release Repository</name>
                          <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                      </repository>
                  </distributionManagement>
      

    打包发布

    • 使用 命令,一键打包。

      `mvn clean deploy -P <profile-id>` 
      
    • 打包过程中会要求输入gpg密钥的Passphase信息,输入即可

    deploy

    • 然后到https://oss.sonatype.org/#stagingRepositories 查看,看到如下信息

      activity

    • 然后去账号下面去回复评论,大概意思是我弄完了,你处理一下吧

      oss

    • 最后在 nexus repository manager中staging repositories选中最新发布的项目,然后执行

      open -> closed
      closed->release
      执行完可以在activity中查看状态以角错误的原因
      
    • 最后按官网上说的过一会,maven Center可以更久一点就能查到了。

      https://search.maven.org/
      
      https://mvnrepository.com/
      
    • 附图

      mainhua

    完整的pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.github.ants-double</groupId>
        <artifactId>mainhua</artifactId>
        <version>1.0-RELEASE</version>
    
        <name>mainhua</name>
        <url>https://github.com/Ants-double/mianhua</url>
        <description>常用工具集成</description>
    
        <properties>
            <!-- Environment Settings -->
            <java.version>1.8</java.version>
    
            <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
            <chartset.UTF8>UTF-8</chartset.UTF8>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <!--        json-->
            <project.fastjson.version>1.2.56</project.fastjson.version>
            <lombok.version>1.18.8</lombok.version>
            <project.test.version>4.12</project.test.version>
    
        </properties>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>fastjson</artifactId>
                    <version>${project.fastjson.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>${lombok.version}</version>
                </dependency>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>${project.test.version}</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
            </dependency>
        </dependencies>
        <licenses>
            <license>
                <name>The Apache Software License, Version 2.0</name>
                <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
                <distribution>repo</distribution>
            </license>
        </licenses>
        <scm>
            <tag>master</tag>
            <url>git@github.com:Ants-double/mianhua.git</url>
            <connection>scm:git:git@github.com:Ants-double/mianhua.git</connection>
            <developerConnection>scm:git:git@github.com:Ants-double/mianhua.git</developerConnection>
        </scm>
        <developers>
            <developer>
                <name>ants-double</name>
                <email>ants_double@yeah.net</email>
                <organization>ants-double</organization>
            </developer>
        </developers>
        <profiles>
            <profile>
                <id>Releases</id>
                <build>
                    <plugins>
                        <!-- Source -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-source-plugin</artifactId>
                            <version>2.2.1</version>
                            <executions>
                                <execution>
                                    <phase>package</phase>
                                    <goals>
                                        <goal>jar-no-fork</goal>
                                    </goals>
                                </execution>
                            </executions>
                        </plugin>
                        <!-- Javadoc -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-javadoc-plugin</artifactId>
                            <version>2.9.1</version>
                            <configuration>
                                <encoding>${chartset.UTF8}</encoding>
                                <aggregate>true</aggregate>
                                <charset>${chartset.UTF8}</charset>
                                <docencoding>${chartset.UTF8}</docencoding>
                            </configuration>
                            <executions>
                                <execution>
                                    <id>attach-javadocs</id>
                                    <phase>package</phase>
                                    <goals>
                                        <goal>jar</goal>
                                    </goals>
                                    <configuration>
                                        <additionalparam>-Xdoclint:none</additionalparam>
                                    </configuration>
                                </execution>
                            </executions>
                        </plugin>
                        <!-- GPG -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-gpg-plugin</artifactId>
                            <version>1.5</version>
                            <executions>
                                <execution>
                                    <phase>verify</phase>
                                    <goals>
                                        <goal>sign</goal>
                                    </goals>
                                </execution>
                            </executions>
                        </plugin>
                        <!--Compiler-->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <version>3.0</version>
                            <configuration>
                                <source>1.8</source>
                                <target>1.8</target>
                                <fork>true</fork>
                                <verbose>true</verbose>
                                <encoding>UTF-8</encoding>
                                <showWarnings>false</showWarnings>
                            </configuration>
                        </plugin>
                        <!--Release-->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-release-plugin</artifactId>
                            <version>2.5.1</version>
                        </plugin>
                    </plugins>
                </build>
                <distributionManagement>
                    <snapshotRepository>
                        <id>sonatype-nexus-snapshots</id>
                        <name>Sonatype Nexus Snapshots</name>
                        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
                    </snapshotRepository>
                    <repository>
                        <id>sonatype-nexus-staging</id>
                        <name>Nexus Release Repository</name>
                        <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                    </repository>
                </distributionManagement>
    
            </profile>
        </profiles>
    </project>
    

    出现的问题

    1. java1.8javadoc严格验证

      解决是添加
       <configuration>
                                          <additionalparam>-Xdoclint:none</additionalparam>
                                      </configuration>
      
    2. 项目id不存在,解决是添加命名的项目id

  • 相关阅读:
    「Python」pandas入门教程
    「Python」字符串操作内置函数
    「Python」10个python项目
    python-基础入门-序
    提取网站图片
    c#图片添加水印
    js获取url传递的参数
    构建之法阅读笔记01
    学习进度条<第一周>
    30道四则运算<1>
  • 原文地址:https://www.cnblogs.com/ants_double/p/11635442.html
Copyright © 2020-2023  润新知