android as上传maven javadoc 乱码_Jar发布到maven中心库

1. 简介

最近经常有人咨询开源项目如何把jar发布到maven中央库的问题,JD Chain作为开源项目,也已经在maven中央库上发布了多个版本,在这里跟大家讲讲jar发布的一些细节。希望对开源爱好者有所帮助。

2. 步骤

2.1. 创建工单

登录网址:https://issues.sonatype.org

点击:Create,按照下图提示添加。

824cc14fbf6d2e8ad876a5db090c64ce.png

2.2. GPG环境

我们需要一个GPG环境,用来对上传的文件进行加密和签名,保证你的jar包不被篡改,下载地址:https://www.gpg4win.org/

安装完成后 命令行窗口中输入 gpg –version 查看是否安装成功。

在图形化界面中可以很快捷的生成一个证书。

9ba581f504e7da63d1f84790f3f46a5f.png

点击“证书”,即可看到相应的key。

公钥指纹:F3B988EE48D8C34C。

在发布的时候,不必非使用原先发布采用的证书,也可以全新生成证书,然后把公钥上传至服务器即可。具体如下:

##把公钥上传至服务器;
再次查看本地公钥私钥
gpg --list-keys

上传公钥到服务器
gpg --keyserver hkp://pool.sks-keyservers.net:11371 --send-keys [公钥]

gpg --keyserver hkp://pool.sks-keyservers.net:11371 --send-keys F3B988EE48D8C34C
gpg --keyserver keyserver.ubuntu.com --send-keys F3B988EE48D8C34C
gpg --keyserver pgp.mit.edu --send-keys F3B988EE48D8C34C
gpg --keyserver keys.gnupg.net --send-keys F3B988EE48D8C34C

查看服务器上的公钥
gpg --keyserver pool.sks-keyservers.net --recv-keys F3B988EE48D8C34C
gpg --keyserver keyserver.ubuntu.com --recv-keys F3B988EE48D8C34C
gpg --keyserver pgp.mit.edu --recv-keys F3B988EE48D8C34C
gpg --keyserver keys.gnupg.net --recv-keys F3B988EE48D8C34C

2.3. setting.xml

maven库配置的setting.xml中进行如下配置:

//位置:apache-maven-3.5.0confsetting.xml

<servers>
         <server>
                   <id>sonatype-nexus-snapshots</id>
                   <username>JDChain</username>
                   <password>xxx</password>
         </server>
         <server>
                   <id>sonatype-nexus-staging</id>
                   <username>JDChain</username>
                   <password>xxx</password>
         </server>
<server>
<id>huaweicloud</id>
<username>anonymous</username>
<password>devcloud</password>
</server>
</servers>

<mirrors>
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
</mirrors>

2.4. pom.xml

//位置: prototypesourcepom.xml

//原先我们采用oss-parent的方式,现在去掉这个parent节点,直接将其参数配置写到pom.xml文件中,主要包含<profile>和<distributionManagement>节点;

<!--结尾添加如下内容-->
<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>
   <url>https://github.com/blockchain-jd-com/jdchain.git</url>
   <connection>https://github.com/blockchain-jd-com/jdchain.git</connection>
   <developerConnection>https://github.com/blockchain-jd-com/jdchain.git</developerConnection>
</scm>
 
<developers>
   <developer>
      <name>jdchain</name>
      <email>git-jdchain@jd.com</email>
      <url>https://github.com/blockchain-jd-com/jdchain.git</url>
   </developer>
</developers>
 
<profiles>
   <profile>
      <id>disable-javadoc-doclint</id>
      <activation>
         <jdk>[1.8,)</jdk>
      </activation>
      <properties>
         <javadoc.opts>-Xdoclint:none</javadoc.opts>
      </properties>
   </profile>
 
   <!-- mvn repository;-->
   <profile>
      <id>sonatype-oss-release</id>
      <build>
         <plugins>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-source-plugin</artifactId>
               <version>2.1.2</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.10.4</version>
               <executions>
                  <execution>
                     <id>attach-javadocs</id>
                     <goals>
                        <goal>jar</goal>
                     </goals>
                    <configuration>
                        <additionalparam>-Xdoclint:none</additionalparam>
                    </configuration>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-gpg-plugin</artifactId>
               <version>1.1</version>
               <executions>
                  <execution>
                     <id>sign-artifacts</id>
                     <phase>verify</phase>
                     <goals>
                        <goal>sign</goal>
                     </goals>
                  </execution>
               </executions>
            </plugin>
         </plugins>
      </build>
   </profile>
</profiles>
 
<distributionManagement>
   <repository>
      <id>sonatype-nexus-staging</id>
      <name>Nexus Release Repository</name>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
   </repository>
</distributionManagement>


2.5. mvn发布

//在发布过程中,可能会提示签名sign之类的错误,这是由于GPG安装可能出现了问题,需要确保通过命令行的方式可以执行:gpg –version

//不执行单元测试,但是编译

mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=xxx" -DskipTests=true

//不执行单元测试,也不编译

mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=xxx" -Dmaven.test.skip=true

2.6. 正式发布

登录:https://oss.sonatype.org/#welcome,用户名:jdchain,登密:xxx。

按照下图点击1,然后在最下面应该会看到刚才发布的com.jd库(标记2)。选中此库后,在其Content中会显示所有相关的jar(标记3)。

如果确定无误,则点击close(标记4)。此时会进行各项正式发布前的校验工作,比如是否包含源码?是否包含javadoc?

如果校验通过,点击release(标记5)。则会同步到中心库。经过1-2个小时后,各中心库会展示相关信息。

361fd7777e4ef8ebbdfa9565db6d0a5f.png

2.7. 结果

2.7.1. maven.apache.org

https://repo.maven.apache.org/maven2/com/jd/blockchain/

08456d05c04faf87076aded545649063.png

2.7.2. mvnrepository

https://mvnrepository.com/search?q=com.jd.blockchain

8bbb2836f9fe2d1dabd33dc5c0d20c10.png

3. 其它

3.1. 忽略deploy

//skip=true,表示忽略;

<plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-deploy-plugin</artifactId>
         <version>2.8.2</version>
         <configuration>
                   <skip>true</skip>
         </configuration>
</plugin>

3.2 sdk-pack

如果希望以一个独立jar的方式对外提供服务,可以全新构建一个sdk-pack项目,将sdk使用的所有jar进行打包,方便对用户提供灵活的服务。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值