一、描述
分享一下上传项目到Jcenter和Maven的一种方法,方法我百度看了有好多,我在这里整理一下。
二、上传项目
(1)注册一个Bintray账号
(2)登陆成功,并且打开 View All ,看到Mavan时点击选择。
(3)选择完Mavan,现在开始创建一个新的Package。
(4)填写Name,这个Name需要与你的项目工程LIbrary相同的名字,Lincenses就图片的Apache-2.0,最后的Version Control 就随便填了,最后Create Package。
</br>
(5)这样就创建完成,好了,现在可以开始配置LIbrary了。
(6)创建项目,并且创建Library,这里再提醒一下,创建的Library名字必须跟在Bintray中创建Package的名字相同。
(7)在UploadJcenter根目录的build.gradle中,添加参数,第一个如果有了就不用重复添加了
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:latest.release'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
}
</br>
(8)在mytool中的build.gradle中,添加以下代码,需要添加的代码我都有注释标明,并且这里说明一点,如果Bintray上没有创建Package包的话,就会根据本地填写的包名自动创建。
</br>
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'//需添加的
apply plugin: 'com.jfrog.bintray'//需添加的
version = "1.0.0" //需更改,这个是Library的版本后,每次更新的时候,版本需要不一样
android {
compileSdkVersion 23
buildToolsVersion "24.0.0"
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
lintOptions {//需添加的
abortOnError false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}
//下面到结尾都是需要添加的
def siteUrl = 'https://github.com/' // 可默认,项目的主页
def gitUrl = 'https://github.com/' //可默认, Git仓库的url
group = "com.junwen.mytool" // 需更改,这个就是Library最后生成出来的包名,最后会成为这样:compile 'com.junwen.mytool:mytool:1.0.0'
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
description 'my utils for test'
name 'Android Commonly used utils' // 可默认,项目描述
url siteUrl
// Set your license
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer { // 可默认,开发者信息
id 'YOUR_ID'
name 'YOUR NAME'
email 'YOUR EMAIL'
}
}
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'
source = 'src/main/java'
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
Properties properties = new Properties()
// 加载本地配置
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = "maven" //发布到Bintray的那个仓库里,默认账户有四个库,我们这里上传到maven库
name = "mytool" //需更改,这个名字就是你在Bintray上创建Package的名字,这里会查询,如果此包不存在就会创建一个。
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
</br>
(9)在项目中的local.properties文件中添加用户信息
</br>
bintray.user=YOUR_BINTRAY_USERNAME //你的Bintray用户名
bintray.apikey=YOUR_BINTRAY_API_KEY //你的Key值
</br>
(10)最后打开Terminal,输入命令执行上传,当BUILD SUCCESSFUL时代表上传成功!
</br>
gradlew bintrayUpload
</br>
</br>
(11) 如果看到了这个就代表成功上传,如果需要上传到Jcenter点击Add to Jcenter,输入描述信息发送信息等待官方审核,审核通过即可直接根据地址调用。
</br>
如果没有上传Jcenter的话,要调用就需要先在项目根目录build.gradle中,添加如下:
allprojects {
repositories {
jcenter()
maven {
url "http://dl.bintray.com/junwen/maven" //这个要添加,只要更改junwen成你的用户名即可
}
}
}
之后在app/build.gradle中添加 compile 'com.junwen.mytool:mytool:1.0.0' 即可使用
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.junwen.mytool:mytool:1.0.0'
}
总结
在本地的build.gradle配置中,配置的Package名字如果不存在,他会自动创建,所以以后可以先配置项目,直接上传,他会根据你本地上传给予的项目名,自动创建Bintray对应的Package包。
欢迎关注我的微信公众号,分享更多技术文章。
网友评论
Parallel execution with configuration on demand is an incubating feature.
Incremental java compilation is an incubating feature.
:library:bintrayUpload
:library:bintrayUpload: file E:\project_code\TestGithub\library\build\libs\library-1.0.0-javadoc.jar could not be found.
:library:bintrayUpload: file E:\project_code\TestGithub\library\build\libs\library-1.0.0-sources.jar could not be found.
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':library:bintrayUpload'.
> Could not create version '1.0.0': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
这个是咋回事啊 搞了很久了都没弄好