android 上传aar到私有maven服务器的示例
搞这个东西也是花了蛮长时间,主要还是对gradle中的groovy语言不熟悉所导致的,写下来,以防下次再入坑~
在gradle中新建task
如果你需要将某个module打包成aar,并上传到maven上去,需要在这个module下面的build.gradle文件中添加如下代码:
其中代码:
apply plugin: 'maven'
表示我们要应用的插件。
MAVEN_LOCAL_PATH表示maven服务器地址,packaging表示需要打包的类型,groupId:artifactId:version,就是我们需要依赖的字段。
上传aar到maven服务器
在studio中打开控制台,执行命令
./gradlew uploadArchives
就能看到log一直跑,直到99%上传aar,如果提示buildSuccessful,那祝贺你,你已经将aar文件上传到maven服务器了。
上传时遇到的问题
执行上传任务时,其实遇到蛮多问题的,这里记住几个就都写下来~
fail to resolve: TestProject:datalibrary:unspecified
解决办法:将
compile 'com.android.commonlibrary:datalibrary:0.1.0'
改为
compile 'com.android.commonlibrary:datalibrary:0.1.0@aar'
详情请见http://stackoverflow.com/questions/36114259/errorfailed-to-resolve-android-iconicslibrary-coreunspecified
return Code 401
解决办法:这是上传的账号密码不对,请跟maven仓库管理员认真核实申请的账号密码。
Fix the issues identified by lint
这个错误具体截图所示:
根据log提示,我们需要在每个module的build.gradle文件中的android域内添加代码
android{
lintOptions{
abortOnError false
}
}
记住,是每个module都得添加,不然还是会出错,血淋淋的教训呐
声明需要引用的maven服务器
在我们主工程的最外层的build.gradle中,添加如下代码:
allprojects {
repositories {
jcenter()
maven {
url "http://192.168.1.107:9999/repository/commonlibrary/"
credentials {
username 'louxiaohui'
password '111111'
}
}
}
}
注意:由于现在经常用的jcenter,bintray,nexus,aar包都是public的,所以声明maven服务器时,不需要设置账号密码,但是对于有些设置了账号密码的,就得添加代码进行认证~
credentials {
username 'louxiaohui'
password '111111'
}
PS: 这都是血淋淋的教训,由于对groovy语言不熟悉,我对credentials这个关键字都找了好久,才知道这货是用来认证账号密码的。。。
引用aar
这个就简单啦,代码大家应该都很熟悉,在需要引用此aar的 module中的build.gradle文件中,添加如下代码:
compile 'com.android.commonlibrary:datalibrary:0.1.0'
以上就是本文的全部内容,希望对大家的学习有所帮助。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法