将Debug和Release版本发布到Aaven的Maven Local

时间:2019-05-07 15:52:30

标签: android gradle android-gradle build.gradle maven-publish

我正在尝试使用/.m2 Gradle插件在<{1}}目录中本地发布 aar 。使用以下代码,我可以发布maven-publish版本(使用PTML),而不发布release版本。

我想通过自定义任务或通过命令行发布debugrelease。任何帮助将不胜感激。

debug

1 个答案:

答案 0 :(得分:1)

您必须为每个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)
                        }
                    }
                }
            }
        }
    }
}

这将创建两个任务publishLibraryReleaseToLocalMavenpublishLibraryDebugToLocalMaven。您可以根据要发布的类型来运行它们。