Publish .aar file with javadocs attached on artifactory repo

后端 未结 2 1705
旧时难觅i
旧时难觅i 2020-12-30 13:43

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 d

相关标签:
2条回答
  • 2020-12-30 14:26

    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.

    0 讨论(0)
  • 2020-12-30 14:31

    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
    }
    
    0 讨论(0)
提交回复
热议问题