gpt4 book ai didi

java - 如何在多项目 Gradle 中为子项目定义不同的依赖关系? ( java )

转载 作者:行者123 更新时间:2023-11-30 10:21:36 25 4
gpt4 key购买 nike

我有一个包含不同子项目的分发项目,我想完成以下任务:

  • (根)
    • 客户
    • 模块A
    • 模块B
    • 模块C
    • 模特

我要放

     protoc {
artifact = 'com.google.protobuf:protoc:3.5.0'
}
plugins {
grpc {
artifact = "io.grpc:protoc-gen-grpc-java:1.7.0"
}
}
generateProtoTasks {
all()*.plugins {
grpc {}
}
} }
dependencies {
compile "com.google.api.grpc:proto-google-common-protos:1.0.0"
compile "io.grpc:grpc-netty:1.7.0"
compile "io.grpc:grpc-protobuf:1.7.0"
compile "io.grpc:grpc-stub:1.7.0"
}

对于模块 A、B 和 C。

现在我的根 build.gradle

中有以下内容
subprojects{
apply plugin: 'java'

sourceCompatibility = 1.8
group 'project'
version '0.0.1-SNAPSHOT'

jar {
manifest {
attributes 'Main-Class': "com.project.${project.name}.App"
}
doFirst {
from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
}
}

repositories {
mavenCentral()
mavenLocal()
}

dependencies {
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:1.9.5'
}
}

所以每个子项目都使用 java 插件,并且有定义的依赖项和 jar 任务。我怎样才能只为某些子项目放置第一个 block ?

我尝试使用像 Multi-project Builds - Gradle 中的变量但我无法在 subprojects block 中访问它。

提前致谢。我真的对正确使用 Gradle 很感兴趣,但在简单的 Android/Java 项目之外很难进入它。请随意包含我应该阅读的任何文档:)

编辑:

谢谢。如果我之前没有搜索,我就不会在这里发布。显然我错过了关键字“子集”,它会给我你链接的解决方案。

最佳答案

这里描述了一个解决方案:https://discuss.gradle.org/t/configure-only-subset-of-subprojects/5379/3

您可以使用项目列表运行 configure()。

project.ext {
subprojectList = subprojects.findAll{
it.name == 'subprojectA' ||
it.name == 'subprojectB' ||
it.name == 'subprojectC'
}
}
configure(project.subprojectList) {
// insert your custom configuration code
}

configure([project(':a'), project(':b'), project(':c')]) {
// configuration
}

关于java - 如何在多项目 Gradle 中为子项目定义不同的依赖关系? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47777952/

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