Публиковать сборки Debug и Release для maven local как aars - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь опубликовать aar локально в каталог /.m2, используя плагин maven-publish Gradle. С помощью приведенного ниже кода я могу опубликовать версию release (с PTML), но не версию debug.

Я хотел бы опубликовать release или debug с пользовательскими задачами или через командную строку. Любая помощь с благодарностью.


    publishing {
        publications {
            aar(MavenPublication) {

                groupId 'com.sample.project'
                artifactId 'SampleProject'
                version '1.1.0'
                artifact bundleReleaseAar

            }
        }

}

1 Ответ

1 голос
/ 09 мая 2019

Вы должны создать новую публикацию для каждой из ваших buildTypes.

. В настоящее время у вас есть только одна публикация с именем library, которая использует в качестве вывода задачи bundleReleaseAar в качестве артефакта.

Если вы хотите опубликовать версию debug, вы должны использовать вывод задачи bundleDebugAar.

Поэтому вам нужно что-то вроде этого:

project.afterEvaluate {
    publishing {
        publications {
            libraryRelease(MavenPublication) {

                artifact bundleReleaseAar
                artifact sourceJar

                groupId 'com.sample.project'
                artifactId 'DummyProject'
                version '1.0'

                pom.withXml {
                    def dependenciesNode = asNode().appendNode('dependencies')
                    def dependencies = new ArrayList<Dependency>()
                    dependencies.addAll(configurations.api.allDependencies)
                    dependencies.addAll(configurations.implementation.allDependencies)
                    dependencies.each {
                        if (it.group != null && (it.name != null || "unspecified".equals(it.name)) && it.version != null) {
                            def dependencyNode = dependenciesNode.appendNode('dependency')
                            dependencyNode.appendNode('groupId', it.group)
                            dependencyNode.appendNode('artifactId', it.name)
                            dependencyNode.appendNode('version', it.version)
                        }
                    }
                }
            }
            libraryDebug(MavenPublication) {

                artifact bundleDebugAar
                artifact sourceJar

                groupId 'com.sample.project'
                artifactId 'DummyProject'
                version '1.0'

                pom.withXml {
                    def dependenciesNode = asNode().appendNode('dependencies')
                    def dependencies = new ArrayList<Dependency>()
                    dependencies.addAll(configurations.api.allDependencies)
                    dependencies.addAll(configurations.implementation.allDependencies)
                    dependencies.each {
                        if (it.group != null && (it.name != null || "unspecified".equals(it.name)) && it.version != null) {
                            def dependencyNode = dependenciesNode.appendNode('dependency')
                            dependencyNode.appendNode('groupId', it.group)
                            dependencyNode.appendNode('artifactId', it.name)
                            dependencyNode.appendNode('version', it.version)
                        }
                    }
                }
            }
        }
    }
}

Это создаст две задачи publishLibraryReleaseToLocalMaven и publishLibraryDebugToLocalMaven.Вы можете запустить их в зависимости от того, какой тип вы хотите опубликовать.

...