gpt4 book ai didi

spring - Gradle 多模块项目 : Apply module dependency to all subprojects except for itself

转载 作者:行者123 更新时间:2023-12-03 04:56:25 29 4
gpt4 key购买 nike

我的应用程序是一个 Gradle 多模块项目,由多个服务和一个 service-common 模块组成。

我已将所有模块共有的所有依赖项提取到根 build.gradle 中,并且我还希望在所有子项目中包含 service-common 模块,这在理论上是有效的,但我遇到了循环依赖问题,因为它包含在其自身中。

apply plugin: 'java'

group = 'com.myapplication'

ext {
set('springCloudVersion', "2.2.0.RELEASE")
set('springBootVersion', "2.2.2.RELEASE")
}

allprojects {

repositories {
jcenter()
mavenCentral()
maven { url 'https://repo.spring.io/milestone' }
}

}

buildscript {
ext {
springBootVersion = "2.2.2.RELEASE"
}

repositories {
maven { url 'https://repo.spring.io/plugins-snapshot' }
jcenter()
mavenCentral()
}

dependencies {
classpath 'io.spring.gradle:dependency-management-plugin:1.0.7.BUILD-SNAPSHOT'
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}

subprojects {
version = '1.0'

apply plugin: 'org.springframework.boot'
apply plugin: "io.spring.dependency-management"
apply plugin: 'java'

ext {
springCloudVersion = "2.2.0.RELEASE"
springBootVersion = "2.2.2.RELEASE"
}

test {
useJUnitPlatform()
}

repositories {
mavenCentral()
jcenter()
maven { url 'https://repo.spring.io/milestone' }
}

dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}

dependencies {
compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: "${springBootVersion}"
compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: "${springBootVersion}"
compile group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: "${springBootVersion}"
compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: "${springBootVersion}"
compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', version: "${springBootVersion}"
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: "${springBootVersion}"
compile group: 'org.springframework.boot', name: 'spring-boot-starter-logging', version: "${springBootVersion}"
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: "${springCloudVersion}"
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-kubernetes', version: '1.1.1.RELEASE'

compile group: 'io.micrometer', name: 'micrometer-registry-prometheus', version: '1.3.2'

compile group: 'com.github.piomin', name: 'logstash-logging-spring-boot-starter', version: '1.2.2.RELEASE'

compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'

compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'

testCompile group: 'com.h2database', name: 'h2', version: '1.4.200'
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.9'

testCompile group: 'org.springframework.cloud', name: 'spring-cloud-stream-test-support', version: "${springCloudVersion}"

implementation project(":service-common")
}

}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

如何排除 service-common 模块的实现项目(":service-common")

最佳答案

你可以这样做:

subprojects {
dependencies {
if (!project.name == "service-common") {
implementation(project(":service-common"))
}
}
}

关于spring - Gradle 多模块项目 : Apply module dependency to all subprojects except for itself,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59443464/

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