zoukankan      html  css  js  c++  java
  • 上传Android或Java库到Maven central repository(转载)

     

    主要介绍利用Sonatype将jar或aar提交到Maven的中央仓库

    是不是希望将自己的jar或是aar传到maven官方库中,在The Central Repository中可以被其他人搜索使用呢,是的话,往下看吧。

    1、Sonatype简介
    Sonatype使用Nexus为开源项目提供托管服务。你可以通过它发布快照(snapshot)或是稳定版(release)到Maven中央仓库。我们只要注册一个Sonatype的JIRA账号、创建一个JIRA ticket,然后对POM文件稍作配置即可。

    2、注册账号
    打开https://issues.sonatype.org/ 注册Sonatype的JIRA账号,这个账号在后面配置maven server时需要使用。
    打开Create a OSSRH ticke 创建一个JIRA ticket,你的一个项目对应着这里的一个JIRA ticket,
    其中Summary可以填写项目名,Description填写项目介绍。
    Group Id非常重要,必须是你项目pom.xml中的group id的父级,做为你账号和该项目关联的标记。如我项目pom.xml中group id为cn.trinea.android.common,为了我所有项目都可以发布,申请填写的Group Id为cn.trinea
    其他按照提示填写即可。完成后大概2个工作日左右,该Issue会变为 _resolved_ 状态表示可用,在可用前下面的过程除了第7步 正式发布外,其他的都没有问题

    3、软件环境
    (1) JDK5以上
    (2) Subversion 或是 Git
    这是根据你项目需要的,你项目用什么版本控制管理工具
    (3) Maven 2.2.1+
    (4) GPG,用于对需要上传的文件加密和签名
    下载地址:https://www.gnupg.org/download/index.html,windows版下载地址:http://gpg4win.org/
    安装完成后通过在命令行模式下通过

    命令生成自己的public key,除了姓名、邮箱、备注外其他都可以使用默认配置,最后需要填写一个passphase,注意它在后面mvn release签名时需要。

    public key生成结束后用

    命令查看key内容,如下:

    其中C6EED57A为key id,需要将他上报给服务器,命令如下:

    这样便完成了gpg public key的创建和上报操作。

    如果有兴趣深入了解可见:How To Generate PGP Signatures With Maven

    4、标准的Pom文件格式

    (1) POM文件必须含有以下元素
    <modelVersion>
    <groupId>
    <artifactId>
    <version>
    <packaging>
    <name>
    <description>
    <url>
    <licenses>
    <scm><url>
    <scm><connection>
    <developers>

    (2) 如果是jar文件,必须包含-javadoc.jar及-sources.jar,即需要在POM中配置build的相应plugin

    关于pom.xml内容可参考:https://github.com/Trinea/android-common/blob/master/pom.xml

    其中需要修改以下地方
    (1) 相关元素信息改为你自己项目信息。
    (2) 必须保证parent或parent的parent为

    (3) 如果你版本控制使用的不是git,而是其他工具,配置见POM and settings config

    (4) 纯Java(非Android)工程需要将<packaging>aar</packaging>改为<packaging>jar</packaging>,并且去掉

    5、配置Maven仓库地址

    在.m2目录下的settings.xml文件中添加

    将其中的your-jira-id和your-jira-pwd替换为你在https://issues.sonatype.org/上的用户名和密码。

    m2 目录在linux下路径为/home/user-name/.m2,windows下路径为C:Usersyour-user-name.m2

    如果后面步骤中发现settings修改不生效可参考:Maven Sonatype Nexus return 401

    6、编译上传

    (1) 发布一个snapshot版本
    mvn clean deploy
    发布完成后登陆https://oss.sonatype.org (https://issues.sonatype.org/ 上的用户名和密码),通过下图步骤找到自己的Artifact(上传的jar或aar或pom等)

    (2) 发布一个release版本
    mvn release:clean release:prepare release:perform
    过程中需要通过GPG签名,需要输入上面的passphase。发布完成后我们依然可以通过类似上图步骤找到我们的Artifact

    其他上传方式见Stage a Release

    7、正式发布

    这里的正式发布是指同步到Maven主仓库使得其他人可以使用。主要包括Close和Release两步,先Close后Release,分别如下图


    其他不明白可以查看:Release

    需要注意

    (1) 在release时可能会出现

    的403弹窗,这可能是因为在2中创建的JIRA ticket,状态还没有变为 _resolved_,等待可用即可。如果上面截图中你的Repository列表中Profile列的值不是你在创建JIRA ticket时的Group Id需要重新提交。

    (2) 如果是第一次release,需要到之前你的JIRA ticket下,评论下告诉他们,你已经release了,需要同步下,我的JIRA ticket: OSSRH-9800.  如下图:

    官方指南:Sonatype OSS Maven Repository Usage Guide

  • 相关阅读:
    sublime开启vim模式
    git命令行界面
    搬进Github
    【POJ 2886】Who Gets the Most Candies?
    【UVA 1451】Average
    【CodeForces 625A】Guest From the Past
    【ZOJ 3480】Duck Typing
    【POJ 3320】Jessica's Reading Problemc(尺取法)
    【HDU 1445】Ride to School
    【HDU 5578】Friendship of Frog
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/3737004.html
Copyright © 2011-2022 走看看