将自己的东西发布到网上会仓库让大家用是一个很好的事情,相信还有相当的一部分人还没不知道怎么将自己的代码贡献出来让别人用compile’ ’ 这样去引用,今天我就以一个例子去教大家做这件事。
一、申请Bintray账号
Bintray的基本功能类似于Maven Central,一样的我们需要一个账号,Bintray官网注册完成后第一步算完成了。不过在首页注册有两个选项务必选择框中的选项如下图:
否则你在最后执行上传的时候会报下图错误:
HTTP/1.1 404 Not Found [message:Repo ‘maven’ was not found]
很多人说出了一种出现这种错误的情况就是用户名设置错误,但是选错注册选项还没有人知道。如果已经注册错误请@我
二、配置工程根目录下的Gradle
直接上代码
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
android-maven-gradle-plugin地址奉上,假如出现什么问题在这是可以找到正确的引用方式。
然后就是配置Moudle里面的build.gradle文件,我的配置如下
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
version = "1.0.0"
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
resourcePrefix "hello"
defaultConfig {
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName version
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
def siteUrl = 'https://github.com/CrazyHan/test' // 项目的主页,改成自己的就行
def gitUrl = 'https://github.com/CrazyHan/test.git' // Git仓库的url,改成自己的就行
group = "com.hsl.adapter" // Maven Group ID for the artifact,一般填你唯一的包名
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
name 'Android Universal ListViewAdapter' //项目描述
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 'hanshenglong' //填写的一些基本信息,写自己的就行
name 'hanshenglong'
email 'hanshenglong001@126.com'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
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.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")//这里是引用local.properties文件里面配置的用户信息,在创建工程的时候自动生成的.gitignore会过滤掉local.properties
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = "maven"
name = "UniversalListAdapter" //发布到JCenter上的项目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.1'
// compile 'com.github.dcendents:android-maven-gradle-plugin:1.5'
testCompile 'junit:junit:4.12'
}
配置好上述后需要在你的项目的根目录上的local.properties文件里(一般这文件需gitignore,防止泄露账户信息)配置你的bintray账号信息,your_user_name为你的用户名,your_apikey为你的账户的apikey,可以点击进入你的账户信息里再点击Edit即有查看API Key的选项,把他复制下来。
bintray.user=your_user_name
bintray.apikey=your_apikey
Rebuild一下项目,如果没有报错就可以进行下一步了
进入工程根目录或者在Android Studio下面的Terminal执行命令行
gradlew install
Windows第一次执行有可能进行下载
然后执行
gradlew bintrayUpload
有可能出现Execution failed for task ‘:core:mavenAndroidJavadocs’.
Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): ‘/Users/zhou/git/app/core/build/tmp/mavenAndroidJavadocs/javadoc.options’
因为在上传过程中执行了javadoc检查,所以可能会报上面的错误。解决方法就是避免javadoc的检查,在项目根目录下的gradle下面就要添加如下配置:
allprojects {
repositories {
jcenter()
}
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
}
然后就是等待输出成功信息,这时候在Jcenter上面看到自己刚上传的项目,然后如图:
最后就是等待自己的项目上线啦。
http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2015/0227/2502.html
http://blog.youkuaiyun.com/tmac2000/article/details/53261141