IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    上传Android或Java库到Maven central repository

    Trinea发表于 2014-05-16 00:00:06
    love 0
    主要介绍利用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/ 安装完成后通过在命令行模式下通过 [crayon-557ee34364d5c763519546/] 命令生成自己的public key,除了姓名、邮箱、备注外其他都可以使用默认配置,最后需要填写一个passphase,注意它在后面mvn release签名时需要。 public key生成结束后用 [crayon-557ee34364d66070771284/] 命令查看key内容,如下: [crayon-557ee34364d6b946557717/] 其中C6EED57A为key id,需要将他上报给服务器,命令如下: [crayon-557ee34364d70711415887/] 这样便完成了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为 [crayon-557ee34364d75289824052/] (3) 如果你版本控制使用的不是git,而是其他工具,配置见POM and settings config (4) 纯Java(非Android)工程需要将<packaging>aar</packaging>改为<packaging>jar</packaging>,并且去掉 [crayon-557ee34364d7a077506661/] 和 [crayon-557ee34364d7e996778111/]   5、配置Maven仓库地址 在.m2目录下的settings.xml文件中添加 [crayon-557ee34364d83858278569/] 将其中的your-jira-id和your-jira-pwd替换为你在https://issues.sonatype.org/上的用户名和密码。 m2 目录在linux下路径为/home/user-name/.m2,windows下路径为C:\Users\your-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时可能会出现 [crayon-557ee34364d8a024797336/] 的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


沪ICP备19023445号-2号
友情链接