Gradle 发布公共模块到maven库(android版)

首先吐槽下:
搜了好多。。都没个详细可运行的。最后从多个地方配凑而来的
需求:
想把一些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/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值