您的位置:首页 > 移动开发 > Android开发

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/

从中找到了解决方法。。。

贴下最终配置:

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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  发布 maven android gradle