将aar发布到github并在项目中引用
2016-01-22 18:02
330 查看
首先将我们准备的框架源码配置如下:
1、将app-build.gradle的apply plugin: ‘com.android.application’修改成apply plugin: ‘com.android.library’,使我们的框架作为library;
2、将manifest中launcher去掉:
3、app-build.gradle中defaultConfig模块去掉applicationId,否则会报/Error:Library projects cannot set applicationId. applicationId is set to ‘com.vdolrm.lrmlibrary’ in default config.错误;
4、app-build.gradle根目录下写一句话:apply from: ‘maven-release-aar.gradle’,同时在此build.gradle的同目录下创建maven-release-aar.gradle文件;
build.gradle内容如下:
5、maven-release-aar.gradle文件内的代码如下:
6、在D盘根目录中创建mygit_lrmlibrary_organization_aar文件夹,作为生成的aar文件组的本地存储位置;
7、在github中新建 组织,create new-new organization,填写基本信息后生成.git地址https://github.com/vdolrm/lrmlibrary_aar.git。此处需要注意,create new有两个选项,new repository和new organization,此处务必要选择organization,虽然区别不大,但是假如选择repository的话不能够作为私有仓库导入到新项目(报Failed to resolve错误)
8、使用SourceTree克隆git地址https://github.com/vdolrm/lrmlibrary_aar.git到mygit_lrmlibrary_organization_aar文件夹,作为aar包的仓库配置;
9、在项目根目录的gradle.propertiese中添加一句话:
把输出路径配置到本地;
10、点击studio下方Termial选项卡调出dos窗口模式,输入:
执行编译,成功后会生成aar文件和相应的加密文件以及pom文件,pom文件作为表单记录着本框架的所有依赖,在引用本框架时会自动从jcenter中一并下载。
第一次执行可能需要等待的时间比较长,大概几分钟左右,成功后在mygit_lrmlibrary_organization_aar文件夹中会生成一些文件,主要是aar文件和xml文件。
11、在SourceTree中选中未提交的文件,把本地文件提交并推送到github。
至此,生成aar并上传到github完成。
第二部分:在新项目中引用私有仓库中的aar
1、在新项目根目录中build.gradle中添加如下代码:
maven库可以以本地仓库和远程仓库作为引用地址,上面两种方式都可以,但推荐使用远程方式。
需要注意的是,新建organization时并没有带/raw/master路径,但这里需要携带/raw/master才可成功引入,原因暂不可知。
2、在新项目app-build.gradle中编写一下信息:
即可。
1、将app-build.gradle的apply plugin: ‘com.android.application’修改成apply plugin: ‘com.android.library’,使我们的框架作为library;
2、将manifest中launcher去掉:
[code]<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
3、app-build.gradle中defaultConfig模块去掉applicationId,否则会报/Error:Library projects cannot set applicationId. applicationId is set to ‘com.vdolrm.lrmlibrary’ in default config.错误;
4、app-build.gradle根目录下写一句话:apply from: ‘maven-release-aar.gradle’,同时在此build.gradle的同目录下创建maven-release-aar.gradle文件;
build.gradle内容如下:
[code]//apply plugin: 'com.android.application' apply plugin: 'com.android.library' android { compileSdkVersion 22 buildToolsVersion "23.0.2" defaultConfig { //applicationId "com.vdolrm.lrmlibrary" minSdkVersion 15 targetSdkVersion 22 versionCode 1//每次升级时修改versionCode和versionName versionName "1.0.1"//每次升级时修改versionCode和versionName } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:22.1.1' compile 'com.soundcloud.android:android-crop:1.0.1@aar' compile 'com.ikimuhendis:ldrawer:0.1' compile 'com.google.code.gson:gson:2.5' compile 'cn.lightsky.infiniteindicator:library:1.0.5' exclude group: 'com.android.support' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' compile 'com.jiechic.library:xUtils:2.6.14' } //aar打包 apply from: 'maven-release-aar.gradle'
5、maven-release-aar.gradle文件内的代码如下:
[code]// 1.maven-插件 apply plugin: 'maven' // 2.maven-信息 ext {// ext is a gradle closure allowing the declaration of global properties PUBLISH_GROUP_ID = 'vdolrm.lrmlibrary' PUBLISH_ARTIFACT_ID = 'base' PUBLISH_VERSION = android.defaultConfig.versionName } // 3.maven-路径 uploadArchives { repositories.mavenDeployer { def deployPath = file(getProperty('aar.deployPath')) repository(url: "file://${deployPath.absolutePath}") pom.project { groupId project.PUBLISH_GROUP_ID artifactId project.PUBLISH_ARTIFACT_ID version project.PUBLISH_VERSION } } }
6、在D盘根目录中创建mygit_lrmlibrary_organization_aar文件夹,作为生成的aar文件组的本地存储位置;
7、在github中新建 组织,create new-new organization,填写基本信息后生成.git地址https://github.com/vdolrm/lrmlibrary_aar.git。此处需要注意,create new有两个选项,new repository和new organization,此处务必要选择organization,虽然区别不大,但是假如选择repository的话不能够作为私有仓库导入到新项目(报Failed to resolve错误)
8、使用SourceTree克隆git地址https://github.com/vdolrm/lrmlibrary_aar.git到mygit_lrmlibrary_organization_aar文件夹,作为aar包的仓库配置;
9、在项目根目录的gradle.propertiese中添加一句话:
[code]aar.deployPath=D:\\mygit_lrmlibrary_organization_aar
把输出路径配置到本地;
10、点击studio下方Termial选项卡调出dos窗口模式,输入:
[code]gradlew uploadArchives
执行编译,成功后会生成aar文件和相应的加密文件以及pom文件,pom文件作为表单记录着本框架的所有依赖,在引用本框架时会自动从jcenter中一并下载。
第一次执行可能需要等待的时间比较长,大概几分钟左右,成功后在mygit_lrmlibrary_organization_aar文件夹中会生成一些文件,主要是aar文件和xml文件。
11、在SourceTree中选中未提交的文件,把本地文件提交并推送到github。
至此,生成aar并上传到github完成。
第二部分:在新项目中引用私有仓库中的aar
1、在新项目根目录中build.gradle中添加如下代码:
[code]buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' } } allprojects { repositories { jcenter() // maven { url "file://D:/mygit_lrmlibrary_organization_aar" }//lrmlibrary本地organization库可以 maven { url "https://github.com/vdolrm/lrmlibrary_aar/raw/master"}//lrmlibrary //假如第7步选择的是new repository的话这里的引用就会一直报错 } }
maven库可以以本地仓库和远程仓库作为引用地址,上面两种方式都可以,但推荐使用远程方式。
需要注意的是,新建organization时并没有带/raw/master路径,但这里需要携带/raw/master才可成功引入,原因暂不可知。
2、在新项目app-build.gradle中编写一下信息:
[code]dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.1.1' compile 'vdolrm.lrmlibrary:base:1.0.1' exclude group: 'com.android.support'//应用格式: packageName(group_id):artifactId:version,这里的格式即为第5步配置mygit_lrmlibrary_organization_aar文件时填写的【PUBLISH_GROUP_ID:PUBLISH_ARTIFACT_ID:PUBLISH_VERSION】 }
即可。
相关文章推荐
- spring mvc添加静态资源访问时@Controller无效的解决
- JAVA中对类进行序列化Serializable
- 错误:找不到或无法加载主类
- spring-boot 加载本地静态资源文件路径配置
- 不用VS自带的打包工具,不用InstallShield。用C#自己制作安装程序
- lua中集成第三方拓展c库
- c#读写ini文件
- spring学习概览
- Android studio导入eclipse项目混淆打包出错
- 【慕课笔记】第六章 数组 第2节 如何使用JAVA中的数组
- python内部执行过程
- java中类,对象,方法的理解
- Zend Studio配置
- Ubuntu14.04安装JDK与配置环境变量
- MangoDB的C#Driver驱动简单例子
- 'Could not find first log file name in binary log index file'
- 《python》学习笔记(Day5),继承类
- Java中的内部类
- JavaSE004_Math类总结之常用方法
- java gzip 内存压缩