码迷,mamicode.com
首页 > 其他好文 > 详细

一步一步教你分享开源项目到 Maven 中心仓库

时间:2015-01-06 23:13:11      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:maven   开源项目   发布   

欢迎各位关注我的新浪微博:http://weibo.com/kifile

转载请标明出处(http://blog.csdn.net/kifile)


       相信很多程序猿朋友都或多或少写过一些通用库文件,也有很多人会秉着开源的精神将代码分享到类似 Github 之类的代码托管网站去。

       其实大家分享代码的时候,目的在于让更多的人使用,但是如果仅仅是放在 Github 这些工具上等人家下载使用,其实很多人是会觉得很麻烦的,那么有什么方法能够帮助我们在不下载 Github 上的源码的时候,使用这些代码吗?

       回答自然是可以的,类似于 Maven,Gradle(其实 Gradle 获取代码的机制也是基于 Maven 的) 这种自动构建工具能够帮助你从网上获取指定的代码,并配置到你的项目中,因此我们只要能够将自己的代码上传到 Maven 中心仓库中,别人就能够通过几行代码对你的项目进行引用了。

       接下来,我们会一步一步讲解如何将开源项目上传到 Maven 中心仓库。

       首先,我先简单介绍一下我自己的平台环境配置:

              Platform:MacOS Yosemite.

              IDE:Android Studio 1.0.2.

              Project:Android Library.

       其实其他平台的也很类似,但是为了方便起见,我就简单介绍一下基于以上环境配置的分享步骤了。

       先放上Maven 官方的指南地址:http://central.sonatype.org/pages/ossrh-guide.html

1.申请sonatype账号,并建立项目请求

       Maven 的相关管理工作貌似是托管给了 sonatype.org 这个网站进行处理,当我们希望向 Maven 中心仓库中加入一个新的项目的时候,必须先在这里申请一个账号,并提供相应的项目信息。

       申请账号的地址在这里: https://issues.sonatype.org/secure/Signup!default.jspa

       申请完成之后,我们需要提供相应的项目信息,地址在这里: https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134

       填写项目信息的网页虽然是英文的,但是都挺简单,很多输入框下方都是相应的输入提示,因此我就不多做介绍了,图1中简单介绍了需要填写的相关信息:


技术分享

图1 提供项目相关信息

       点击 Create 之后,你就会进入一个 jira 页面(sonatype 使用jira 来追踪每一个项目进度),与此同时你注册时使用的邮箱中也会收到一封邮件提示你,任务创建成功,正在等待处理。

       接下来我们需要做的就是等待,maven 项目只有在 sonatype 自己审核通过之后才能够正式发布,根据官网上的描述是大约耗时两天,不过我的项目第二天一早就已经发送邮件通知我创建成功了,为他们的速度点个赞。


2.上传项目到 Maven 中心仓库

       如果你收到了 sonatype 的反馈邮件,确认已经为你创建好了新项目,你就可以开始上传你的项目了。

       我这次是准备将自己新写的一个 Android 点击效果库文件上传到 Maven 仓库,由于我使用的是 Android Studio,因此我直接在我的 Library 项目的 gradle.build 文件中进行配置。

       首先将以下代码添加到 gradle.build 文件尾部:

apply plugin: 'maven'
apply plugin: 'signing'

signing {
    sign configurations.archives
}

group = "com.kifile"
archivesBaseName = "MaterialView"
version = "1.0"

uploadArchives {
    repositories {
        mavenDeployer {
            beforeDeployment {
                MavenDeployment deployment -> signing.signPom(deployment);
            }

            repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
                authentication(userName: ossrhUsername, password: ossrhPassword)
            }

            snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
                authentication(userName: ossrhUsername, password: ossrhPassword)
            }

            pom.project {
                name 'MaterialView'
                packaging 'aar'
                description 'This project is build to let the view looks like a material design widget when touched. '
                url 'https://github.com/Kifile/MaterialView'

                scm {
                    connection 'scm:git:https://github.com/Kifile/MaterialView.git'
                    developerConnection 'scm:git:https://github.com/Kifile/MaterialView.git'
                    url 'https://github.com/Kifile/MaterialView.git'
                }

                licenses {
                    license {
                        name 'The Apache License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }

                developers {
                    developer {
                        id 'kifile'
                        name 'Kifile Chou'
                        email 'kifile@kifile.com'
                    }
                }
            }
        }
    }
}

       在上面的代码中,大家请将根域中的 group,archiveBaseName,version以及 uploadArchives#pom.project 中的相关描述信息改成自己的就好了。

       这些信息将会在接下来上传的时候,自动打包成 Maven 项目,并封装相应信息。

       在这里我们就已经配置好了相应的版本信息,接下来我们需要配置上传时需要的签名以及密码等相关信息。

       首先我们需要创建一个 gpg 签名秘钥,并将公钥上传到指定服务器。

       在 MacOS 下,我们可以下载一个叫做GPGTools (http://www.gpgtools.org)的工具生成我们的签名文件。

       安装好工具之后,我们在 Launchpad 中能够看到一个叫做GPG Keychains 的软件,打开之后,我们选择新建一个秘钥,参看图2:

技术分享

图2创建 GPG 秘钥

       点击新建之后,填写完相应信息之后,点击生成秘钥,我们就获取到了签名秘钥,之后右键选中创建的秘钥,点击 Send public key to key server.就能够将本地公钥上传到指定服务器了,参看图3。

技术分享

图3上传公钥至公共服务器

      上传完成之后,我们就可以正式配置签名信息以及你的 Maven 账户信息了,我们在 Library Module 的根目录下新建一个 gradle.properties 文件,内容如下:

signing.keyId=输入在新建秘钥完成后显示的 keyId
signing.password=输入你的秘钥密码
signing.secretKeyRingFile=/Users/你的用户名/.gnupg/secring.gpg

ossrhUsername=你在 sonatype 上的账户名
ossrhPassword=你在 sonatype 上的密码


      现在,你已经成功的将上传信息配置好了,通过命令行,进入 Library Module 所在的目录,输入 gradle uploadArchives 就能够将你的文件上传到 Maven 中央库了。


3.发布你的应用

       你以为上传到 Maven 中央库就结束了吗?

       才没有结束呢,到目前为止,你只是将你的文件上传到了 Maven 的一个私有服务器,是不能被其他人所访问的。如果你想正式发布你的应用,还要继续下面的步骤。

              a.进入 Maven 项目控制台

                  进入以下地址:https://oss.sonatype.org/,并使用 sonatype 的账号密码在右上角进行登录。

              b.查找你上传的项目
                  如果你登录成功,在左侧的导航栏,你会看到一个叫做 Staging Repositories 的选项,点击他,你会发现出现了很多列表选项,如下图4。

技术分享

图4 仓库列表

        根据列表名称,你会发现一个以你的 groud id 去掉点号后加上一个四位数字命名的Repository,例如这里是叫做 comkifile1000,选中它,你会发现上方的 Close 按钮亮起,当你确认上传无误之后,你可以点击 Close 按钮,关闭掉这个仓库,不允许再次上传。如果关闭成功,你点击刷新以后会发现,Release 按钮亮起,点击它即可发布。如果关闭失败,你可以看看下方的界面,查找一下失败原因,再次上传代码,关闭后发布。


       到了这里,整个 Maven项目的发布流程已经结束了。

       请注意,发布并不是实时生效的,我的代码差不多是在3个小时左右,才能够在 Maven 中心仓库检索到,所以如果你发布之后没能及时检索到,请稍后再试。

一步一步教你分享开源项目到 Maven 中心仓库

标签:maven   开源项目   发布   

原文地址:http://blog.csdn.net/kifile/article/details/42463489

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!