将 Debug 和 Release 构建作为 aars 发布到 maven 本地
Publish Debug and Release builds to maven local as aars
我正在尝试使用 maven-publish
Gradle 插件将 aar 本地发布到 /.m2
目录。使用以下代码,我可以发布 release
版本(使用 PTML),但不能发布 debug
版本。
我想通过自定义任务或通过命令行发布 release
或 debug
一个。非常感谢任何帮助。
publishing {
publications {
aar(MavenPublication) {
groupId 'com.sample.project'
artifactId 'SampleProject'
version '1.1.0'
artifact bundleReleaseAar
}
}
}
您必须为每个 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
。您可以 运行 它们取决于您要发布的类型。
我正在尝试使用 maven-publish
Gradle 插件将 aar 本地发布到 /.m2
目录。使用以下代码,我可以发布 release
版本(使用 PTML),但不能发布 debug
版本。
我想通过自定义任务或通过命令行发布 release
或 debug
一个。非常感谢任何帮助。
publishing {
publications {
aar(MavenPublication) {
groupId 'com.sample.project'
artifactId 'SampleProject'
version '1.1.0'
artifact bundleReleaseAar
}
}
}
您必须为每个 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
。您可以 运行 它们取决于您要发布的类型。