2017-05-15 9 views
2

私は、gradlのmaven-publishpluginを使用してKotlinで開発されたAndroidライブラリモジュールをエクスポートしようとしています。 aarファイルは正常に生成され、エクスポートされますが、依存関係は追加されません。まったく、Kotlinのものさえありません。 、Kotlin Androidライブラリモジュールは、依存関係を追加しないで、gradle maven-publishプラグインをエクスポートしました

apply plugin: 'maven-publish' 

Properties properties = new Properties() 
properties.load(project.rootProject.file('local.properties').newDataInputStream()) 

ext { 
    releaseRepository = "s3://****/maven/releases" 
    snapshotsRepository = "s3://****/maven/snapshots" 
    artifactRepository = "$buildDir/outputs/aar/render-engine-release.aar" 

    _version = properties.getProperty('lib.version') 
    _artifact = properties.getProperty('lib.name') 
    _group = properties.getProperty('lib.group') 
} 


task sourceJar(type: Jar) { 
    from android.sourceSets.main.java.srcDirs 
    classifier "source" 
} 

publishing { 
    publications { 
     maven(MavenPublication) { 
      groupId _group 
      artifactId _artifact 
      version _version 
      artifact (sourceJar) 
      artifact artifactRepository 

      pom.withXml { 
       def dependenciesNode = asNode().appendNode('dependencies') 

       configurations.compile.allDependencies.each { 
        if(_group != null && (_artifact != null || "unspecified" == _artifact) && _version != null) { 
         def dependencyNode = dependenciesNode.appendNode('dependency') 

         dependencyNode.appendNode('groupId', _group) 
         dependencyNode.appendNode('artifactId', _artifact) 
         dependencyNode.appendNode('version', _version) 
        } 
       } 
      } 
     } 
    } 

    repositories { 
     maven { 
      if(_version.endsWith('-SNAPSHOT')) { 
       url snapshotsRepository 
      } else { 
       url releaseRepository 
      } 

      credentials(AwsCredentials) { 
       accessKey AWS_ACCESS_KEY 
       secretKey AWS_SECRET_KEY 
      } 
     } 
    } 
} 

答えて

3

[OK]をので、私は私の問題を解決しthisを実装しましたリンクquestionの答えを読んで維持する:下のthis回答に基づいてプラグインの設定です。最終的なpublish.gradleは次のようなものです:

apply plugin: 'maven-publish' 

Properties properties = new Properties() 
properties.load(project.rootProject.file('local.properties').newDataInputStream()) 

ext { 
    releaseRepository = "s3://****/maven/releases" 
    snapshotsRepository = "s3://****/maven/snapshots" 
    artifactRepository = "$buildDir/outputs/aar/render-engine-release.aar" 

    _version = properties.getProperty('lib.version') 
    _artifact = properties.getProperty('lib.name') 
    _group = properties.getProperty('lib.group') 
} 


task sourceJar(type: Jar) { 
    from android.sourceSets.main.java.srcDirs 
    classifier "source" 
} 

publishing { 
    publications { 
     maven(MavenPublication) { 
      groupId _group 
      artifactId _artifact 
      version _version 
      artifact(sourceJar) 
      artifact artifactRepository 

      pom.withXml { 
       def dependenciesNode = asNode().appendNode('dependencies') 

       configurations.compile.getAllDependencies().each { Dependency dep -> 
        if (dep.group == null || dep.version == null || dep.name == null || dep.name == "unspecified") 
         return 

        def dependencyNode = dependenciesNode.appendNode('dependency') 
        dependencyNode.appendNode('groupId', dep.group) 
        dependencyNode.appendNode('artifactId', dep.name) 
        dependencyNode.appendNode('version', dep.version) 

        if (!dep.transitive) { 
         def exclusionNode = dependencyNode.appendNode('exclusions').appendNode('exclusion') 
         exclusionNode.appendNode('groupId', '*') 
         exclusionNode.appendNode('artifactId', '*') 
        } else if (!dep.properties.excludeRules.empty) { 
         def exclusionsNode = dependencyNode.appendNode('exclusions') 
         dep.properties.excludeRules.each { ExcludeRule rule -> 
          def exclusionNode = exclusionsNode.appendNode('exclusion') 
          exclusionNode.appendNode('groupId', rule.group ?: '*') 
          exclusionNode.appendNode('artifactId', rule.module ?: '*') 
         } 
        } 
       } 
      } 
     } 
    } 

    repositories { 
     maven { 
      if (_version.endsWith('-SNAPSHOT')) { 
       url snapshotsRepository 
      } else { 
       url releaseRepository 
      } 

      credentials(AwsCredentials) { 
       accessKey AWS_ACCESS_KEY 
       secretKey AWS_SECRET_KEY 
      } 
     } 
    } 
} 
関連する問題