224 lines
9.1 KiB
Groovy
224 lines
9.1 KiB
Groovy
//参考:https://raw.github.com/dm77/barcodescanner/master/build.gradle
|
||
|
||
buildscript {
|
||
repositories {
|
||
jcenter()
|
||
}
|
||
dependencies {
|
||
classpath "com.android.tools.build:gradle:${GRADLE_BUILD_VERSION}"
|
||
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:${GRADLE_BINTRAY_VERSION}"
|
||
}
|
||
}
|
||
|
||
allprojects {
|
||
group = PROJ_GROUP
|
||
version = PROJ_VERSION
|
||
|
||
repositories {
|
||
jcenter() //bintray的maven库
|
||
mavenCentral() //sonatype的maven库
|
||
mavenLocal() //本地maven库
|
||
flatDir {
|
||
dirs 'libs' //本地.aar文件
|
||
}
|
||
}
|
||
|
||
ext {
|
||
isLibrary = false
|
||
pomGroup = PROJ_GROUP
|
||
pomArtifactId = "library"
|
||
pomVersion = PROJ_VERSION
|
||
pomDescription = 'This is library description'
|
||
}
|
||
|
||
}
|
||
|
||
subprojects {
|
||
afterEvaluate { Project project ->
|
||
ext.pluginContainer = project.getPlugins()
|
||
def hasAppPlugin = ext.pluginContainer.hasPlugin("com.android.application")
|
||
def hasLibPlugin = ext.pluginContainer.hasPlugin("com.android.library")
|
||
if (hasAppPlugin || hasLibPlugin) {
|
||
android {
|
||
compileSdkVersion COMPILE_SDK_VERSION as int
|
||
buildToolsVersion BUILD_TOOL_VERSION
|
||
|
||
defaultConfig {
|
||
minSdkVersion MIN_SDK_VERSION as int
|
||
targetSdkVersion COMPILE_SDK_VERSION as int
|
||
versionCode VERSION_CODE as int
|
||
versionName VERSION_NAME
|
||
}
|
||
|
||
buildTypes {
|
||
release {
|
||
debuggable false
|
||
minifyEnabled false
|
||
proguardFile getDefaultProguardFile('proguard-android.txt')
|
||
}
|
||
debug {
|
||
debuggable true
|
||
minifyEnabled false
|
||
}
|
||
}
|
||
|
||
lintOptions {
|
||
abortOnError false
|
||
}
|
||
|
||
packagingOptions {
|
||
exclude 'META-INF/DEPENDENCIES.txt'
|
||
exclude 'META-INF/LICENSE.txt'
|
||
exclude 'META-INF/NOTICE.txt'
|
||
exclude 'META-INF/NOTICE'
|
||
exclude 'META-INF/LICENSE'
|
||
exclude 'META-INF/DEPENDENCIES'
|
||
exclude 'META-INF/notice.txt'
|
||
exclude 'META-INF/license.txt'
|
||
exclude 'META-INF/dependencies.txt'
|
||
exclude 'META-INF/LGPL2.1'
|
||
exclude 'META-INF/ASL2.0'
|
||
}
|
||
|
||
}
|
||
|
||
dependencies {
|
||
compile "com.android.support:support-v4:${ANDROID_SUPPORT_VERSION}"
|
||
compile "com.android.support:support-annotations:${ANDROID_SUPPORT_VERSION}"
|
||
}
|
||
}
|
||
|
||
if (project.isLibrary) {
|
||
configure(project) {
|
||
// 这个脚本是用来发布库项目到jcenter
|
||
apply plugin: 'com.jfrog.bintray'
|
||
apply plugin: 'maven-publish'
|
||
|
||
version = project.pomVersion //版本号
|
||
group = PROJ_GROUP // 包名
|
||
project.archivesBaseName = project.pomArtifactId
|
||
|
||
task sourcesJar(type: Jar) {
|
||
from android.sourceSets.main.java.srcDirs
|
||
classifier = 'sources'
|
||
}
|
||
|
||
task javadoc(type: Javadoc) {
|
||
source = android.sourceSets.main.java.srcDirs
|
||
classpath += configurations.compile
|
||
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
|
||
exclude '**/BuildConfig.java'
|
||
exclude '**/R.java'
|
||
failOnError = false
|
||
}
|
||
|
||
task javadocJar(type: Jar, dependsOn: javadoc) {
|
||
classifier = 'javadoc'
|
||
from javadoc.destinationDir
|
||
}
|
||
|
||
javadoc {
|
||
options {
|
||
encoding "UTF-8"
|
||
charSet 'UTF-8'
|
||
author true
|
||
version true
|
||
links "http://docs.oracle.com/javase/7/docs/api"
|
||
title project.pomArtifactId
|
||
}
|
||
}
|
||
|
||
publishing {
|
||
publications {
|
||
mavenJava(MavenPublication) {
|
||
artifactId project.pomArtifactId
|
||
artifact "${buildDir}/outputs/aar/${project.pomArtifactId}-release.aar"
|
||
artifact javadocJar
|
||
artifact sourcesJar
|
||
|
||
pom.withXml {
|
||
Node root = asNode()
|
||
root.appendNode('name', project.pomArtifactId)
|
||
root.appendNode('description', project.pomDescription)
|
||
root.appendNode('url', PROJ_WEBSITE_URL)
|
||
|
||
def issues = root.appendNode('issueManagement')
|
||
issues.appendNode('system', 'github')
|
||
issues.appendNode('url', PROJ_ISSUE_URL)
|
||
|
||
def scm = root.appendNode('scm')
|
||
scm.appendNode('url', PROJ_GIT_URL)
|
||
scm.appendNode('connection', "scm:git:${PROJ_GIT_URL}")
|
||
scm.appendNode('developerConnection', "scm:git:${PROJ_GIT_URL}")
|
||
|
||
def license = root.appendNode('licenses').appendNode('license')
|
||
license.appendNode('name', "The Apache Software License, Version 2.0")
|
||
license.appendNode('url', "http://www.apache.org/licenses/LICENSE-2.0.txt")
|
||
license.appendNode('distribution', "repo")
|
||
|
||
def developer = root.appendNode('developers').appendNode('developer')
|
||
developer.appendNode('id', DEVELOPER_ID)
|
||
developer.appendNode('name', DEVELOPER_NAME)
|
||
developer.appendNode('email', DEVELOPER_EMAIL)
|
||
|
||
def dependenciesNode = root.appendNode('dependencies')
|
||
configurations.compile.allDependencies.each {
|
||
if (it.group && it.name && it.version) {
|
||
def dependencyNode = dependenciesNode.appendNode('dependency')
|
||
dependencyNode.appendNode('groupId', it.group)
|
||
dependencyNode.appendNode('artifactId', it.name)
|
||
dependencyNode.appendNode('version', it.version)
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
afterEvaluate {
|
||
publishing.publications.mavenJava.artifact(bundleRelease)
|
||
}
|
||
|
||
bintray {
|
||
Properties properties = new Properties()
|
||
properties.load(project.rootProject.file('local.properties').newDataInputStream())
|
||
user = properties.getProperty("bintray.user")
|
||
key = properties.getProperty("bintray.apikey")
|
||
|
||
publications = ['mavenJava']
|
||
publish = true //是否发布
|
||
|
||
pkg {
|
||
repo = "maven" //上传的中央仓库名称
|
||
name = project.pomArtifactId //发布到中央仓库上的项目名字
|
||
desc = project.pomDescription
|
||
websiteUrl = PROJ_WEBSITE_URL //项目主页
|
||
issueTrackerUrl = PROJ_ISSUE_URL //项目讨论页
|
||
vcsUrl = PROJ_GIT_URL //项目GIT仓库
|
||
licenses = ["Apache-2.0"]
|
||
publicDownloadNumbers = true
|
||
version {
|
||
name = project.pomVersion
|
||
desc = project.pomDescription
|
||
gpg {
|
||
sign = true //是否GPG签名,可使用Gpg4win创建密钥文件
|
||
passphrase = properties.getProperty("bintray.gpg.password")
|
||
//GPG签名所用密钥
|
||
}
|
||
mavenCentralSync {
|
||
sync = false //是否同步到Maven Central
|
||
user = properties.getProperty("sonatype.user") //sonatype用户名
|
||
password = properties.getProperty("sonatype.password")
|
||
//sonatype密码
|
||
close = '1'
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|