java项目怎么发布到网上_一步一步教你将开源项目上传到jcenter

最近闲着看了一下jcenter的使用,也想将自己使用频率比较高的东西抽成类库,然后通过compile来使用,提高开发效率,本来以为挺简单的,但是网上介绍的比较模糊,很多博客也比较老了,不适用,花了我一天的时间,还是走了很多弯路,这里记录下来,希望能帮助到小伙伴们,现在觉得还是挺简单的。

第一步:首先是注册,这就是我踩的最大的一个坑,导致我一天都没有上传成功。网上说的都是去jcenter的网站上注册就可以,其实不然,英文好的最好去看英文文档,一步一步来操作。

个人正确的注册地址:https://bintray.com/signup/oss

个人正确的注册地址:https://bintray.com/signup/oss

个人正确的注册地址:https://bintray.com/signup/oss

重要的事情说三遍,一定要到这个网址去注册。

打开界面是这样的,一定要选择我打标记的这个,默认的话是第一个,这就是坑,所以一定要看清楚再注册。

ec3ab50ce41333a49bad4d0c0047a15e.png

注:这里用普通的邮箱(qq,163这些都不好使)是行不通的,最好使用google邮箱或者outlook邮箱。

注册完成后界面是这样的,看下图:

b8c53b812a222941b5592d6eef66faf3.png

但是,如果你注册后界面是下面这样的:

33947812fa7a5563cc5249b234654bbe.png

看不到New Repository,就说明你注册错了,踩了我的第一个坑。删除账号信息后,重新注册吧。

注册完成后我们点击Add New Repository,新建一个仓库。

注:创建的maven仓名字和类型都要写成maven,如下图所示:

6aaadc4283585f492f020a04e5da81a0.png

然后我们开始获取user和key,至于为什么要,我们后面再说:

7d67f6643fd0e689fa37104d0f3fcf38.png

12d8bc1220140d16ff3d8ae4f147e69a.png

这样我们jcenter的工作就做好了,然后准备我们上传的开源项目,这个比较简单,我就随便说了。

第一步:先新建一个项目,然后在这个项目下新建一个Android LIbrary的Module,自己的开源库就在这个Module里面开发,如下图:

747bd8ae0709d3174a1a857afd4053ca.png

第二步:

在这个新建的Module里面,开发自己的开源项目,然后,在原来的项目里是可以直接引用Module里在代码的。但运行的时候会报错,需要在项目的build.gradle中添加如下代码:

compile project(':CommonUtilLibrary')

后面单引号里面,是自己创建的Module名字。

然后,再重新运行整个项目,就可以把Module也编译进去了。

第三步:

编写工程的build.gradle文件,记住,是工程的。

先打开项目的build.gradle文件,一定是项目的build文件,然后在里面添加如下代码:

buildscript {

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:2.3.1'

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'

}

}

记住,代码有的就保留下来,没有的加上去。

注意:这里Sync有时候会报 Error:(2, 0) No service of type Factory...这样的错误,主要是因为这一行:

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'

如果报错了的话,就自己去官网上看最新的插件版本号,改了就可以了。

这里添加完后完整的build.gradle应该是这样的:

a009ef85f9e4265ad431fe32c4377ec9.png

然后再打开将要上传的Module的build.gradle文件,添加如下代码:

apply plugin: 'com.github.dcendents.android-maven'

apply plugin: 'com.jfrog.bintray'

def siteUrl = 'https://github.com/caijin199410/CommonUtil.git' // 项目的主页 这个是说明,可随便填

def gitUrl = 'https://github.com/caijin199410/CommonUtil.git' // Git仓库的url 这个是说明,可随便填

group = "com.abrahamcaijin" // 这里是groupId ,必须填写 一般填你唯一的包名,对应com.squareup.okhttp3:okhttp:3.4.1中的com.squareup.okhttp3部分

install {

repositories.mavenInstaller {

// This generates POM.xml with proper parameters

pom {

project {

packaging 'aar'

// Add your description here

name 'CommonUtil' //项目描述

url siteUrl

// Set your license

licenses {

license {

name 'The CommonUtil Software License, Version 1.0.0'

url 'http://www.apache.org/licenses/LICENSE-2.0.txt'

}

}

developers {

developer {

id 'caijinabraham' //填写开发者的一些基本信息

name 'caijinabraham' //填写开发者的一些基本信息

email [email protected]' //填写开发者的一些基本信息

}

}

scm {

connection gitUrl

developerConnection gitUrl

url siteUrl

}

}

}

}

}

task sourcesJar(type: Jar) {

from android.sourceSets.main.java.srcDirs

classifier = 'sources'

}

task javadoc(type: Javadoc) {

options {

encoding "UTF-8"

charSet 'UTF-8'

author true

version true

links "http://docs.oracle.com/javase/7/docs/api"

}

source = android.sourceSets.main.java.srcDirs

classpath += project.files(android.getBootClasspath().join(File.pathSeparator))

}

task javadocJar(type: Jar, dependsOn: javadoc) {

classifier = 'javadoc'

from javadoc.destinationDir

}

artifacts {

archives javadocJar

archives sourcesJar

}

Properties properties = new Properties()

properties.load(project.file('local.properties').newDataInputStream())

bintray {

// userOrg=properties.getProperty("bintray.user")

user = properties.getProperty("bintray.user") //读取 local.properties 文件里面的 bintray.user

key = properties.getProperty("bintray.apikey") //读取 local.properties 文件里面的 bintray.apikey

configurations = ['archives']

pkg {

repo = "maven"

name = "CommonUtil" //发布到JCenter上的项目名字,必须填写,对应com.squareup.okhttp3:okhttp:3.4.1中的okhttp

publishVersion = ‘1.0.0’//发布到JCenter上的项目版本号

websiteUrl = siteUrl

vcsUrl = gitUrl

licenses = ["Apache-2.0"]

publish = true

}

}

添加完成后,完整的build.gradle应该是这样的:

a759e945e85fe3df6e59a40d22728901.png

35dc44df75e57215fc47de3e0e6e1475.png

c9ab0409c946d763f382aaad3984d04a.png

最后需要在本地的local.properties里面添加以下内容:

bintray.user=YOUR_BINTRAY_USERNAME

bintray.apikey=YOUR_BINTRAY_API_KEY

如图所示:

7cc2c2ad56c1bd9b32a35c1e155a1e9c.png

第四步:

打开android studio的命令行:

8085ad1a3fea510998e7384fdb01353e.png

输入如下命令:

输入命令:

gradlew install

gradlew bintrayUpload

当这两个命令都成功显示BUILD SUCCESSFUL就可以了,或者不执行上面这两个命令,直接合成执行下面这个命令就可以了:

gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false

记住要把user和key换成自己的,同样要显示BUILD SUCCESSFUL才可以。

最后要将项目发布到jcenter:

上传开源库到jcenter的办法很多,可以百度,这里看看我的就可以了,打开jcenter的主页,进入自己新建的maven仓库里面,你就可以看到自己推上来的开源项目了,如下图所示:

ff300c9a5e8b3b2ca96506a7954fff80.png

674c96c97621a99b7a6badd7967a720c.png

然后需要等待审核通过,一般5-6小时。在审核通过前可以通过配置自己私有仓地址使用。

2671bb48700c7e56faf07d9b8e9c366a.png

然后在项目的根目录下build.gradle配置地址:

7e37e52ad808f6c2b54291ad2023f818.png

然后在要是使用的Module的build.gradle里面添加依赖:

项目中加入依赖即可:

compile 'com.abrahamcaijin:ComonUtil:1.0.0'

注意:如果这里提示依赖不成功,可以再后边加上@arr,审核通过以后可以去掉后面的@arr,暂时发现os系统上传后不需要加入便可成功,windows系统上传需要加入@arr

compile 'com.abrahamcaijin:ComonUtil:[email protected]'

然后现在是1.0.0版本,我以后想增加、迭代怎么办?

这个非常简单,当你的Library代码更改后,只需要更改一下上面的配置里面的publishVersion,运行gradlew clean build bintrayUpload -PdryRun=false,就可以更新版本号了。这样,整个过程就结束了。

好了,现在你就可以在你项目中依赖你的开源库了,就是这么简单!有不懂的联系我。

转载自:http://blog.csdn.net/u014727709/article/details/71104201

欢迎start,欢迎评论,欢迎指正

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值