Опубликовать файл .aar с javadocs, прикрепленным к artifactory repo

Я пытаюсь опубликовать AAR с файлом javadoc для моего maven repo через artifactory gradle puglin.

Файл aar загружается с успехом, но у javadoc нет. Какую script можно использовать для загрузки моих javadocs?.

Это мой код build.gradle

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 {
 ************* 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
}
2 ответа

Ваша публикация включает только файл aar:

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

Добавьте еще один артефакт - результат задачи androidJavadocsJar:

artifact androidJavadocsJar

Повторите попытку для источников, если хотите.


Это работает для меня.

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 {
 ************* 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
}

licensed under cc by-sa 3.0 with attribution.