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