1.把自己需要上传的项目打包(.jar or .aar)
2.创建Bintray帐号并创建对应的Jcenter仓库
3.通过Gradle命令上传
4.注意事项
首先来说第一点:
jar、aar两者区别
*.jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
*.aar: 包含所有资源 ,class以及res资源文件全部包含
如果你只是一个简单的类库那么使用生成的.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用.aar文件。
使用方式:
*.jar:拷贝到:libs目录,eclipse直接导入即可,AndroidStudio项目中添加:
dependencies {
compile fileTree(include: [‘*.jar’], dir: ‘libs’)
}
重新编译一次项目既可完成加载。
那么要如何生成jar文件或者aar文件呢,这里以aar为例子
首先:
使用android studio生成一个module
1
在新建的module里面把自己的类文件、布局文件、资源文件等放进去,rebuild一下,就可以了。
生成的aar文件路径是
2
右键aar文件,show in exploer,即可找到aar文件取出来给别的项目使用
使用方法:
(1)将aar包复制到lib目录下
(2)配置build.gradle文件:
repositories {
flatDir {
dirs ‘libs’
}
compile(name:’camerascan-1.0’, ext:’aar’)
第一步就完成了;
第二步:创建Bintray帐号
https://bintray.com
创建完帐号后,接着需要创建Organization
3
创建成功后,然后在Organization里面创建一个仓库(Create a repository)
4
这里type选择maven,其他随意
5
创建完仓库(respository)后,需要新建一个包(package),红色箭头标记那里
这个包就是你需要上传的aar文件存储的地方
6
这里可以填写一些基本信息,名字,包的描述,licenses这里选择Apache-2.0,版本随意,这里我写的是1.0.0
7
基本工作就做好了,接下来就是第三步了
打开你的as,在项目中local.properties 中添加 user和apikey
这里的user是
8
然后点击Edit Profile ,最后一项API Key,点击show就能看到了
9
10
接着 在项目最外层的build.gradle 中添加如下两行代码
11
接下来在你要上传的Libray的build.gradle 中添加代码:
apply plugin:’com.android.library’
//添加两个插件
apply plugin:’com.github.dcendents.android-maven’
apply plugin:’com.jfrog.bintray’
// This is the library version used when deploying the artifact
// 你项目的版本号
version= “1.0.0”
android {
compileSdkVersion 26
buildToolsVersion “26.0.2”
resourcePrefix “customView__”
defaultConfig {
minSdkVersion 15
targetSdkVersion 26
versionCode1
versionName”1.0″
testInstrumentationRunner”android.support.test.runner.AndroidJUnitRunner”
}
buildTypes {
release {
minifyEnabledfalse
proguardFiles getDefaultProguardFile(‘proguard-android.txt’),’proguard-rules.pro’
}
}
tasks.withType(Javadoc) {
options.encoding= “UTF-8” // 避免GBK编码格式错误
}
}
dependencies {
implementation fileTree(dir:’libs’,include:[‘*.jar’])
implementation ‘com.android.support:appcompat-v7:26.1.0’
testImplementation ‘junit:junit:4.12’
androidTestImplementation ‘com.android.support.test:runner:1.0.2’
androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.2’
}
def siteUrl= ‘https://gitee.com/baiaj/SearchView’ // 项目的主页
def gitUrl= ‘https://gitee.com/baiaj/SearchView.git’ // Git仓库的url
group= “com.clt5201314.baiajRepo.SearchView”
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom{
project{
packaging’aar’
// Add your description here
name’Android SearchView widget’
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’baiaj’
name’byerman’
email’baiajclt@gmail.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”)
key= properties.getProperty(“bintray.apikey”)
configurations = [‘archives’]
pkg {
userOrg= “clt5201314″//JCenter上创建的的Organization
repo= “baiajRepo”//你要上传的库的名字
name= “SearchView” //发布到JCenter上的项目名字
websiteUrl= siteUrl
vcsUrl= gitUrl
licenses = [“Apache-2.0”]
publish= true
}
}
接下来在Terminal命令行那里输入
gradlew install
gradlew bintrayUpload
就可以了上传了
上传成功后到对应的Package里面即可查到对应的消息
点击Add to JCenter,填写一些提交信息,等待审批通过
12
一般第二天审批通过就可以在AS里面调用这个库了
调用方式 implementation ‘com.android.support:appcompat-v7:26.1.0’
注意事项
1.在上传过程中发现提示:编码GBK的不可映射字符->请正确配置javadoc编码
按上面代码即可解决
tasks.withType(Javadoc) {
options.encoding= “UTF-8” // 避免GBK编码格式错误
}