说下为什么要用JCenter吧,首先JCenter 库是托管在 Bintray 网站上的,发布库到JCenter是需要注册Bintray网站的,JCenter在你创建项目的,是默认给你添加的,谷歌亲儿子,相关支持也比较到位,兼容也比较跟随版本,但是我觉得最重要的是,更新版本要比Jitpack方便很多啊,Jitpack每次要更新库,还需要push到github,发布版本,,,感觉心好累,测试比较多的话,github项目上的release上会显示很多版本,JCent更新版本只需要一句代码就行了,那我们就来尝试使用JCent库吧!
首先新建一个项目和库,不清楚的请看:https://blog.csdn.net/CNAD666/article/details/84321293
确定下项目环境,这个很重要,说下成功发布的环境。(请务必按照下面配置环境,不然可能会因为兼容问题而报错)
build.gradle(Project:***)下
classpath 'com.android.tools.build:gradle:3.0.1'
gradle-wrapper.properties(Gradle Version)下
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
如果使用“classpath 'com.android.tools.build:gradle:3.2.1” 在发布到JCent上的时候会报下面的错,jdk冲突,,,服了。这大概是新的bintray-release插件不兼容“3.2.1”版本,我试了下,好像3.1.x和3.2.x都不兼容,这个实在是坑,这个就等这个和后续谷歌进行版本适配吧。
What went wrong:
A problem occurred evaluating project ':app'.
> Uninitialized object exists on backward branch 70
bintray官网:https://bintray.com (进入该网站可能需要科学上网,可百度赛风)
下面是主页的图,但是上面的“Sign Up”是注册组织的账号,需要收费,霸王拉倒最下,有注册个人账号的入口,免费使用。
或者你直接点击,bintray个人账号注册:https://bintray.com/signup/oss (从网站最下面注册个人账号入口链接复制过来的)
如果是下图就说明,注册的地方正确,注意,邮箱无法使用qq和网易的,可以用foxmail和谷歌等。
注册成功后,点击选择“View Profile”进入该界面,然后点击“Add New Repository”
下图三个地方,请按照标出的内容填写就行了,最后点击“Create”
接下来,点击“maven”进入,我们自己创建repository就行了
创建新包
下图按照标注的填好,便可。
在build.gradle(Project:***)里,增加下面俩个位置代码,位置对应代码块:
classpath 'com.novoda:bintray-release:0.9'
tasks.withType(Javadoc).all {
enabled = false
}
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.novoda:bintray-release:0.9'
}
}
allprojects {
repositories {
google()
jcenter()
}
tasks.withType(Javadoc).all {
enabled = false
}
}
在build.gradle(Module:***)里 增加以下代码即可,“artifactId”就是我们创建包的名字
apply plugin: 'com.novoda.bintray-release'
publish {
userOrg = 'taoge' //bintray.com用户名
groupId = 'com.ytman' //jcenter上的路径
artifactId = 'YTAOLibrary' //项目名称
publishVersion = '1.0.0' //版本号
desc = '多功能库'
website = 'https://github.com'
}
我们会为了避免依赖库冲突,会将“compile”或“implementation” 改成compile,这是没问题
但是
这里如果将“testImplementation”和“androidTestImplementation” 改成 “testCompileOnly”和‘androidTestCompileOnly’
在提交到bintray的时候,会报下面的错:
* What went wrong:
Execution failed for task ':XXXXX:testDebugUnitTest'.
> There were failing tests. See the report at: file:///G:/XXXXXX/build/reports/tests/testDebugUnitTest/index.html
所以在这里“testImplementation”和“androidTestImplementation”不要改动
gradlew clean build bintrayUpload -PbintrayUser=“输入你的用户名” -PbintrayKey="输入你的key" -PdryRun=false
用户名就是你注册的用户名
怎么获得key?见下图,先点击“Edit Profile”,然后点击“API Key”,最后点击标注的地方,就能获得key了
最后输入代码:gradlew clean build bintrayUpload -PbintrayUser=“输入你的用户名” -PbintrayKey="输入你的key" -PdryRun=false
上传成功如下
最后点击“send”
进入自己的库,选择Gradle,可以看见引用语句
更改代码,更新版本只需要修改下版本号
然后执行代码:gradlew clean build bintrayUpload -PbintrayUser=输入你的用户名 -PbintrayKey=输入你的key -PdryRun=false