Time will give us what we want , and believe it ,we are worth
waitting.
简要:
- androidstudio项目中引入module
- 引入第三方的module源文件
- 将modlue以aar文件的形式进行引用
- 将自己的module上传至远程仓库并进行使用
androidstudio 被android开发者广泛使用,modlue 的引入对于我的帮助很大,在空闲之余,将自己在modlue的使用中的一些经验和问题做一个总结。也希望对进行探索这方面的同学一些帮助。
1:androidstudio项目中引入module
step1:创建自己的项目(略)
step2:创建module
step3:选择 androidlibrary (next)—>根据自己的需要修改包名—>finish
step4:成功之后的项目结构图如下
setp5:在modlue中书写自己公共相关的类.
step6:在主项目中进行module依赖
step7:主项目中进行调用。如遇类名相同的情况下,记得明确自己的包名。
但是在创建module后会遇到没有library的图标,导致modlue没法使用。
解决相应办法请访问:
引入第三方的module源文件
step1:直接引入,File—>New—>import Module
step2:选择相应的modlue
step3:finish完成,引入成功的目录结构和自己创建一个modlue一样。使用方法也是一样。
将modlue以aar文件的形式进行引用
There are two ways to import module.
Methods one:直接以aar的形式引入
2:选择import JAR/AAR Package,点击Next
3:在本地中选择Module相应的aar文件(建议选择release版本的)
4:finish完成
5:相应的目录结构如下:
6:同样需要在build.gradle中进行依赖,完成使用
Methods two :import library
以library的方式进行引入,类似于.jar文件。
step1:将aar文件复制后放入到libs文件夹下
step2:之后需要在build.gradle中进行相应的引用,格式如下
android{
//引入aar类型文件的配置
repositories {
flatDir {
dirs 'libs'
}
}
}
step3:在dependencies{}中进行依赖
compile (name: '引入aar文件的名字', ext: 'aar')
step4:完成,进行使用
至此,关于module的一些基本使用已经完成,另外:
androidstudio引入Module的若干问题汇总
将自己的module上传至远程仓库并进行使用
在androidstudio的开发中,应用最多的也是进行依赖远程仓库的文件
example:
compile 'com.android.support:support-v4:23.4.0'
所以在compile中的相关引用解释:由三部分组成
- GROUP_ID: —->com.android.support
- ARTIFACT_ID: —->support-v4
- VERSION:—->23.4.0
所以如何将自己的module放置在远程仓库 jcenter 或者 mavenCentral 中,来进行简单有效的应用呢?
一下两篇是我在学习这部分的相关文章,感谢前辈们的辛苦。
如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
那么下面我将自己的相关开发过程也做一个整理,尽量使其简单。
1.创建代码仓库
step1:登陆至bintray官网注册自己的账号
step2:注册界面如下
step3:创建之后进入如下界面
点击Add New Repository 创建自己的仓库
step3:相应的界面如下:
step4:创建完成后,你的相应界面如下,此时自己的相关maven仓库已经建立完成
2.在主项目中build.gradle 中添加依赖插件
buildscript {
repositories {
···
}
dependencies {
···
//Maven和Jfrog Bintray的依赖插件:
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
}
}
添加上面两行代码。
对于插件的依赖,可以去网上查看最新版本
Maven:https://github.com/dcendents/android-maven-gradle-plugin
Jfrog Bintray:https://github.com/bintray/gradle-bintray-plugin
3.在modlue中添加如下的相关代码
step1:在上面先添加如下这两行代码
//添加这两行
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
step2:在该文件中dependencis后面添加如下代码
//项目主页:也就是在 git的主页
def siteUrl = 'https://github.com/wedfrendwang/wedlibrary'
//项目的git地址
def gitUrl = 'https://github.com/wedfrendwang/wedlibrary.git'
//发布到JCenter上的项目名字 这个相当于 ----> ARTIFACT_ID
def libName = "baselibrary"
//发布到组织名称名字,必须填写 这个相当于---->GROUP_ID
group = "com.wendfrend"
// 版本号,下次更新是只需要更改版本号即可
version = "1.0.0" 这个相当于---->VERSION
//上面配置后上传至JCenter后的编译路径是这样的: compile 'com.wendfrend:baselibrary:1.0.0'
//生成源文件
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
//生成Javadoc文档
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
//文档打包成jar
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
//拷贝javadoc文件
task copyDoc(type: Copy) {
from "${buildDir}/docs/"
into "docs"
}
//上传到JCenter所需要的源码文件
artifacts {
archives javadocJar
archives sourcesJar
}
// 配置maven库,生成POM.xml文件
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
//项目描述,随意填
name 'A colorful circle view with text.'
url siteUrl
licenses {
license {
//开源协议
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
//开发者的个人信息
id 'wedfrendwang'
name 'wedfrendwang'
email 'wedfrend@yeah.net'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
//上传到JCenter
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user") //读取 local.properties 文件里面的 bintray.user
key = properties.getProperty("bintray.apikey") //读取 local.properties 文件里面的 bintray.apikey
configurations = ['archives']
pkg {
//这里的repo值必须要和你创建Maven仓库的时候的名字一样
repo = "maven"
//发布到JCenter上的项目名字
name = libName
//项目描述
desc = 'A colorful circle view with text.'
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
javadoc {
options{
//如果你的项目里面有中文注释的话,必须将格式设置为UTF-8,不然会出现乱码
encoding "UTF-8"
charSet 'UTF-8'
author true
version true
links "http://docs.oracle.com/javase/7/docs/api"
}
}
以上这些代码的功能即上传至你在的bintray中的maven仓库。需要注意的问题如下:
1: 里面涉及到关于github的一些设置,比如siteUrl以及gitUrl的使用,对于这两个值如果不想进行使用,在后面有使用到的内容下都将器删除掉
2:如果想使用git的项目地址,可以参考我的另一篇文章git代码托管的方法
3: 重要的一部分为书写自己的bintray中的相关配置(如下)
4:相应的信息所在位置在你刚刚注册过的bintray中可以找到,如下
apikey在你的个人信息中可以查看:
点击API keykey可以查看个人秘钥,默认是自己的密码。可以点击查看
user,maven如图
5:相应的值得到之后,androidstudio的安全机制中,比较隐私的数据会存放至当前项目的local.properties中,所以我们将user和apikey放置在其中,如图:
Done,至此目前我们代码中的相关功能已经完成。
6:上传自己的library至bintray。
- 打开terminal
- 输入 gradlew install, 出现成功之后 会出现 SUCCESSFUL
- 接着在输入 gradlew bintrayUpload
成功之后便可在bintray的仓库中查看自己的library
如图:
7:点击自己的library可以查看详细信息。目前我们也只是将自己的module上传至bintray并没有上传至公共的Jcenter仓库,但是目前我们也可以使用在bintray仓库的library。
7.1:新建一个android project
7.2:在project中build.gradle添加maven的地址,如下:
allprojects {
repositories {
jcenter()
maven {
url 'https://dl.bintray.com/wedfrendwang/maven'
}
}
}
该地址会在的的bintray中的右上角
然后在你的app中的build.gradle中进行compile引用即可
引用时的相关数据可以在bintray中查看
8:最后一步讲library上传至Jcenter仓库
点击自己的仓库项目,在右下角有一个link to 点击 Add to Jcenter
然后进入界面 点击 send 便OK 了。
等待审核,然后就可以被公开使用。
注:当你的jar被审核通过, bintray会发送一个邮件至你注册的邮箱,那么你只需要点击就好,之后你的jar就可以被全球开发者使用了。
当然你也可以直接在浏览器进行类似如下访问
http://jcenter.bintray.com/com/wendfrend/wedlibrary/1.0.0/
说明:
http://jcenter.bintray.com ————> 是bintray的官网网址
/com/wendfrend/ ———–> 是你项目的 group id
wedlibrary ————> 是你项目的artifactId
1.0.0 ————> 版本
也许我们的资格,能力还没有达到一定的境界,没法写出大神一样的 开源框架,开源插件,应用起来可以满足绝大多数的开发者,但是了解这种流程对于开发的帮助是很大的