168 lines
4.1 KiB
Groovy
168 lines
4.1 KiB
Groovy
group = PROJ_GROUP
|
||
version = PROJ_VERSION
|
||
project.archivesBaseName = PROJ_ARTIFACTID
|
||
apply plugin: 'com.jfrog.bintray'
|
||
apply plugin: "com.jfrog.artifactory"
|
||
apply plugin: 'maven-publish'
|
||
|
||
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))
|
||
}
|
||
|
||
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 PROJ_ARTIFACTID
|
||
}
|
||
}
|
||
|
||
//添加以下信息避免JAVADOC打包时引用其它类库而出现问题,比如出现以下错误
|
||
// xxxx.java:20: 错误: 找不到符号
|
||
// public static <T> T create(JsonElement json, Class<T> classOfModel) {
|
||
// ^
|
||
// 符号: 类 JsonElement
|
||
// 位置: 类 xxxx
|
||
android.libraryVariants.all { variant ->
|
||
println variant.javaCompile.classpath.files
|
||
if (variant.name == 'release') {
|
||
//我们只需 release 的 javadoc
|
||
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
|
||
// title = ''
|
||
// description = ''
|
||
source = variant.javaCompile.source
|
||
classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath())
|
||
options {
|
||
encoding "utf-8"
|
||
links "http://docs.oracle.com/javase/7/docs/api/"
|
||
linksOffline "http://d.android.com/reference", "${android.sdkDirectory}/docs/reference"
|
||
}
|
||
exclude '**/BuildConfig.java'
|
||
exclude '**/R.java'
|
||
}
|
||
task("javadoc${variant.name.capitalize()}Jar", type: Jar,
|
||
dependsOn: "generate${variant.name.capitalize()}Javadoc") {
|
||
classifier = 'javadoc'
|
||
from tasks.getByName("generate${variant.name.capitalize()}Javadoc").destinationDir
|
||
}
|
||
artifacts {
|
||
archives tasks.getByName("javadoc${variant.name.capitalize()}Jar")
|
||
}
|
||
}
|
||
}
|
||
|
||
artifacts {
|
||
archives javadocJar
|
||
archives sourcesJar
|
||
}
|
||
|
||
|
||
def pomConfig = {
|
||
scm {
|
||
connection PROJ_VCSURL
|
||
developerConnection PROJ_VCSURL
|
||
url PROJ_WEBSITEURL
|
||
}
|
||
licenses {
|
||
license {
|
||
name "The Apache Software License, Version 2.0"
|
||
url "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||
distribution "repo"
|
||
}
|
||
}
|
||
developers {
|
||
developer {
|
||
id DEVELOPER_ID
|
||
name DEVELOPER_NAME
|
||
email DEVELOPER_EMAIL
|
||
}
|
||
}
|
||
"dependencies " {
|
||
// dependency {
|
||
// groupId "com.alibaba"
|
||
// artifactId "fastjson"
|
||
// "version " "1.2.6"
|
||
// //同dependencies
|
||
// }
|
||
// }
|
||
}
|
||
}
|
||
|
||
publishing {
|
||
publications {
|
||
mavenJava(MavenPublication) {
|
||
artifactId PROJ_ARTIFACTID
|
||
artifact javadocJar
|
||
artifact sourcesJar
|
||
|
||
pom {
|
||
packaging 'aar'
|
||
}
|
||
pom.withXml {
|
||
def root = asNode()
|
||
root.appendNode('description', PROJ_DESCRIPTION)
|
||
root.children().last() + pomConfig
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
afterEvaluate {
|
||
publishing.publications.mavenJava.artifact(bundleRelease)
|
||
}
|
||
|
||
bintray {
|
||
user = hasProperty("bintrayUser") ? getProperty("bintrayUser") : getProperty("BINTRAY_USER")
|
||
key = hasProperty("bintrayKey") ? getProperty("bintrayKey") : getProperty("BINTRAY_KEY")
|
||
|
||
configurations = ['archives']
|
||
publications = ['mavenJava']
|
||
publish = true
|
||
|
||
pkg {
|
||
repo = 'maven'
|
||
name = PROJ_NAME
|
||
desc = PROJ_DESCRIPTION
|
||
websiteUrl = PROJ_WEBSITEURL
|
||
issueTrackerUrl = PROJ_ISSUETRACKERURL
|
||
vcsUrl = PROJ_VCSURL
|
||
licenses = ['Apache-2.0']
|
||
publicDownloadNumbers = true
|
||
}
|
||
}
|
||
|
||
artifactory {
|
||
contextUrl = 'http://oss.jfrog.org/artifactory'
|
||
resolve {
|
||
repository {
|
||
repoKey = 'libs-release'
|
||
}
|
||
}
|
||
publish {
|
||
repository {
|
||
repoKey = 'oss-snapshot-local' //The Artifactory repository key to publish to
|
||
username = bintray.user
|
||
password = bintray.key
|
||
maven = true
|
||
}
|
||
defaults {
|
||
publications('mavenJava')
|
||
publishArtifacts = true
|
||
}
|
||
}
|
||
} |