gpt4 book ai didi

android - 跨模块共享 uploadArchives 任务

转载 作者:行者123 更新时间:2023-12-03 05:27:15 24 4
gpt4 key购买 nike

我正在开发一个带有一组可发布库的仓库,每个库都在一个模块中。这个想法是每个库都应该能够单独发布,即 ./gradlew upload .

目前在每个模块中,我都有以下代码来发布它:

uploadArchives {
repositories {
mavenDeployer {
repository(url: "<url>") {
authentication(userName: System.getenv('USER_NAME'), password: System.getenv('PASSWORD'))
pom.groupId = "$groupId"
pom.artifactId = "$artifactId"
pom.version = android.defaultConfig.versionName
}
}
}
}

afterEvaluate {
publishing {
publications {
library(MavenPublication) {
setGroupId "$groupId"
setArtifactId "$artifactId"
version android.defaultConfig.versionName

artifact bundleReleaseAar
}
}
}
}

我很想有一种方法来分享这些 gradle 任务并避免在每个模块中重复它们,但还没有找到一种方法来做到这一点。一件棘手的事情可能是 artifactId每个模块都会有所不同,所以假设我可以提取那些 gradle 任务,应该有一种方法来设置 artifactId分别。

有人能给我一些启示吗?谢谢

最佳答案

您可以将所有代码放入一个简单的 build.gradle并使用 apply from:申请多个build.gradle文件。

例如,我有这个 compile.gradle我在很多地方使用的脚本:kotlin/build.gradlejava/build.gradle .

而不是编写自己的“发布”build.gradle ,我建议您使用一个流行的开源脚本,gradle-mvn-push.gradle .

这是您的项目的示例设置:

root
|
| gradle
| --- gradle-mvn-mpp-push.gradle
|
| - module a
| --- build.gradle - apply from: rootProject.file("gradle/gradle-mvn-mpp-push.gradle")
|
| - module b
| --- build.gradle - apply from: rootProject.file("gradle/gradle-mvn-mpp-push.gradle")
|

请参阅此处的文档: https://docs.gradle.org/current/userguide/plugins.html#sec:script_plugins

关于android - 跨模块共享 uploadArchives 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60860351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com