Publish .aar file with javadocs attached on artifactory repo

匿名 (未验证) 提交于 2019-12-03 02:49:01

问题:

I'm trying to publish an AAR with javadoc file to my maven repo through artifactory gradle puglin.

The aar file is doing uploaded with success, but i the javadoc don't. Which script can i use to upload my javadocs?.

This is my build.gradle code

apply plugin: 'com.android.library' apply plugin: 'com.jfrog.artifactory' apply plugin: 'maven-publish'  def packageName = 'br.com.lexsis.libtest' def libraryVersion = '0.0.1-SNAPSHOT'  android {     compileSdkVersion 23     buildToolsVersion "23.0.0"      defaultConfig {         minSdkVersion 15         targetSdkVersion 23         versionCode 1         versionName "1.0"     }     buildTypes {         release {             minifyEnabled false             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'         }     } }  dependencies {     compile fileTree(dir: 'libs', include: ['*.jar'])     compile 'com.android.support:appcompat-v7:23.0.0' }  publishing {     publications {         aar(MavenPublication) {             groupId packageName             version = libraryVersion             artifactId project.getName()              // Tell maven to prepare the generated "*.aar" file for publishing             artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")              pom.withXml {                 def dependencies = asNode().appendNode('dependencies')                 configurations.getByName("_releaseCompile").getResolvedConfiguration().getFirstLevelModuleDependencies().each {                     def dependency = dependencies.appendNode('dependency')                     dependency.appendNode('groupId', it.moduleGroup)                     dependency.appendNode('artifactId', it.moduleName)                     dependency.appendNode('version', it.moduleVersion)                 }             }         }     } }  artifactory {     contextUrl = "${artifactory_contextUrl}"     publish {         repository {             // The Artifactory repository key to publish to             repoKey = libraryVersion.endsWith('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local'              username = "${artifactory_user}"             password = "${artifactory_password}"         }         defaults {             // Tell the Artifactory Plugin which artifacts should be published to Artifactory.             publications('aar')             publishArtifacts = true              // Properties to be attached to the published artifacts.             properties = ['qa.level': 'basic', 'dev.team': 'core']             // Publish generated POM files to Artifactory (true by default)             publishPom = true         }     } }  task androidJavadocs(type: Javadoc) {     source = android.sourceSets.main.java.srcDirs     classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) }  task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {     classifier = 'javadoc'     from androidJavadocs.destinationDir }  task androidSourcesJar(type: Jar) {     classifier = 'sources'     from android.sourceSets.main.java.srcDirs }  artifacts {     archives androidSourcesJar     archives androidJavadocsJar } 

回答1:

Your publication only includes the aar file:

artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")

Add another artifact - the output of the androidJavadocsJar task:

artifact androidJavadocsJar

Repeat for sources jar, if you want.



回答2:

This works for me.

apply plugin: 'com.android.library' apply plugin: 'com.jfrog.artifactory' apply plugin: 'maven-publish'  def packageName = 'br.com.lexsis.libtest' def libraryVersion = '0.0.1-SNAPSHOT'  android {   compileSdkVersion 23   buildToolsVersion "23.0.0"  defaultConfig {     minSdkVersion 15     targetSdkVersion 23     versionCode 1     versionName "1.0" } buildTypes {     release {         minifyEnabled false         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'     } } }  dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    compile 'com.android.support:appcompat-v7:23.0.0' }  publishing { publications {     aar(MavenPublication) {         groupId packageName         version = libraryVersion         artifactId project.getName()          // Tell maven to prepare the generated "*.aar" file for publishing         artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")         artifact androidJavadocsJar          pom.withXml {             def dependencies = asNode().appendNode('dependencies')             configurations.getByName("_releaseCompile").getResolvedConfiguration().getFirstLevelModuleDependencies().each {                 def dependency = dependencies.appendNode('dependency')                 dependency.appendNode('groupId', it.moduleGroup)                 dependency.appendNode('artifactId', it.moduleName)                 dependency.appendNode('version', it.moduleVersion)             }         }     } } }  artifactory { contextUrl = "${artifactory_contextUrl}" publish {     repository {         // The Artifactory repository key to publish to         repoKey = libraryVersion.endsWith('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local'          username = "${artifactory_user}"         password = "${artifactory_password}"     }     defaults {         // Tell the Artifactory Plugin which artifacts should be published to Artifactory.         publications('aar')         publishArtifacts = true          // Properties to be attached to the published artifacts.         properties = ['qa.level': 'basic', 'dev.team': 'core']         // Publish generated POM files to Artifactory (true by default)         publishPom = true     } } }  task androidJavadocs(type: Javadoc) {     source = android.sourceSets.main.java.srcDirs     classpath +=    project.files(android.getBootClasspath().join(File.pathSeparator)) }  task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {     classifier = 'javadoc'     from androidJavadocs.destinationDir }  task androidSourcesJar(type: Jar) {     classifier = 'sources'     from android.sourceSets.main.java.srcDirs }  artifacts {     archives androidSourcesJar     archives androidJavadocsJar } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!