2015-09-01 16 views
6

Ben javadoc dosyası ile bir AAR yayımlamak için ben artifactory gradle puglin aracılığıyla maven repo için yayınlamaya çalışıyorum.javadocs ile arn dosyası. Artifactory repo üzerine yapıştırılmış bir dosya

Aar dosyası başarı ile yükleniyor, ancak javadoc yok. Javadocs'ımı yüklemek için hangi betiği kullanabilirim?

Bu

benim build.gradle kodudur

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 
} 
+0

Bu bağlantı size yardımcı olabilir: http://central.sonatype.org/pages/gradle.html. Talimatları takip ederek hepsini yükleyebildim. – WindsurferOak

cevap

7
Sizin yayın yalnızca aar dosyası içerir

:

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

başka objeyi ekleyin - androidJavadocsJar görev çıktısını:

artifact androidJavadocsJar

İsterseniz, kaynak kavanozu için tekrarlayın.

+0

üzgünüm, ben groggy ve gradle üzerinde dilenci değilim. Yani, yapmam gereken iki satır daha eklemektir: artifact androidJavadocsJar AND artifact androidJavadocSources? – pablobaldez

+0

Evet, yayınında – JBaruch

+0

çalışıyor! Teşekkür ederim. – pablobaldez

5

Bu benim için çalışır.

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

çıktısı için başka bir eser eklemeyi nasıl açıklayabileceğimizi '' maven-yayınla 'eklentisini kullandığınızdan '' artifacts {...} 'root seviyesinde blok gerekli değildir ve' artifact androidSourcesJar' aar (MavenPublication) {...} 'kaynağında Javadoc ve aar dosyasının yanı sıra kaynakları yayınlamak için blok. –