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) { options.encoding = "utf-8" 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 create(JsonElement json, Class 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 } } } 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 } } }