Gradle 发布公共模块到maven库(android版)
2015-08-14 18:58
483 查看
首先吐槽下:
搜了好多。。都没个详细可运行的。最后从多个地方配凑而来的
需求:
想把一些android公用的模块发布到公司自己的maven库
百度搜(原谅我英文不好,没习惯用google吧):找到这个http://www.xyczero.com/blog/article/19/
然后各种提示错,可能是博主的版本比较低吧。最终改到最后一个错,说那个install找不到。然后继续搜这个错
找到:http://stackoverflow.com/questions/26851230/android-gradle-build-error9-0-gradle-dsl-method-not-found-compile
然后看了下面的回答,知道照第一个博客那样配置是不行的。于是去github上搜索
https://github.com/blundell/release-android-library
好吧,继续配置最终不停修改,增删,成功了。。问题来了。。这样只能发布到本地,完全木有用啊。。说好的发布到maven库呢
继续搜索吧,最终发现这个(有可能是我之前的搜索方式不对)
http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradle/
从中找到了解决方法。。。
贴下最终配置:
希望能对大家有帮助哈
有必要声明下 该篇文章参考了多个博客,在下面一一列举哈
http://stackoverflow.com/questions/26851230/android-gradle-build-error9-0-gradle-dsl-method-not-found-compile
https://github.com/blundell/release-android-library
http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradle/
搜了好多。。都没个详细可运行的。最后从多个地方配凑而来的
需求:
想把一些android公用的模块发布到公司自己的maven库
百度搜(原谅我英文不好,没习惯用google吧):找到这个http://www.xyczero.com/blog/article/19/
然后各种提示错,可能是博主的版本比较低吧。最终改到最后一个错,说那个install找不到。然后继续搜这个错
找到:http://stackoverflow.com/questions/26851230/android-gradle-build-error9-0-gradle-dsl-method-not-found-compile
然后看了下面的回答,知道照第一个博客那样配置是不行的。于是去github上搜索
https://github.com/blundell/release-android-library
好吧,继续配置最终不停修改,增删,成功了。。问题来了。。这样只能发布到本地,完全木有用啊。。说好的发布到maven库呢
继续搜索吧,最终发现这个(有可能是我之前的搜索方式不对)
http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradle/
从中找到了解决方法。。。
贴下最终配置:
apply plugin: 'com.android.library' //表示这是一个类库模块 apply plugin: 'maven' //需要用到maven插件 ext { //自定义扩展属性 z里面对应了maven的 groupId actifactId 和version PUBLISH_GROUP_ID = 'com.mypackage' PUBLISH_ARTIFACT_ID = 'my-example-android-library' PUBLISH_VERSION = '0.0.1' } android { compileSdkVersion 22 //编译SDK的版本号 buildToolsVersion "21.1.2" //buildTools的版本号 defaultConfig { minSdkVersion 10 //最小支持的版本号 targetSdkVersion 22 //目标SDK版本(跟编译版本一样) } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.1' } apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle' //类似于 maven的parent,有点继承的赶脚 def groupId = project.PUBLISH_GROUP_ID def artifactId = project.PUBLISH_ARTIFACT_ID def version = project.PUBLISH_VERSION def localReleaseDest = "${buildDir}/release/${version}" uploadArchives { repositories.mavenDeployer { //配置发布信息 url是你maven的发布路径, // Add other pom properties here if you want (developer details / licenses) repository(url: "<url>") { authentication(userName: "<username>", password: "<pwd>") pom.groupId = groupId pom.artifactId = artifactId pom.version = version } } } //以下两行 在单独执行 build generateRelease时会用到 generateRelease.dependsOn(uploadArchives) generateRelease.dependsOn(zipRelease) artifacts { archives androidSourcesJar archives androidJavadocsJar } //此句意思为每次build都会往maven库发布一次,建议不要加 build.dependsOn 'uploadArchives'
希望能对大家有帮助哈
有必要声明下 该篇文章参考了多个博客,在下面一一列举哈
http://stackoverflow.com/questions/26851230/android-gradle-build-error9-0-gradle-dsl-method-not-found-compile
https://github.com/blundell/release-android-library
http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradle/
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories