Модуль библиотеки Android Kotlin, экспортированный с плагином gradle maven-publish, не добавляя зависимости

Я пытаюсь экспортировать модуль библиотеки Android, разработанный в Kotlin, используя maven-publish плагин. aar успешно сгенерирован и экспортирован, однако к нему не добавляется никаких зависимостей, даже Kotlin. Ниже приведена конфигурация плагина, основанная на этом ответе:

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

person Humble Student    schedule 15.05.2017    source источник


Ответы (1)


Хорошо, продолжайте читать ответы по ссылке вопрос Я реализовал это, что решило мою проблему. Мой окончательный 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
            }
        }
    }
}
person Humble Student    schedule 15.05.2017