Mar*_*ies 2 spring circular-dependency subproject gradle multi-module
我的应用程序是一个 Gradle 多模块项目,由多个服务和一个服务通用模块组成。
\n\nI\xc2\xb4ve 将所有模块共有的所有依赖项提取到根 build.gradle 中,并且我还想在所有子项目中包含service-common模块,这在理论上是可行的,但 I\xc2\xb4m 得到了循环依赖问题,因为它包含在其自身中。
\n\napply plugin: \'java\'\n\ngroup = \'com.myapplication\'\n\next {\n set(\'springCloudVersion\', "2.2.0.RELEASE")\n set(\'springBootVersion\', "2.2.2.RELEASE")\n}\n\nallprojects {\n\n repositories {\n jcenter()\n mavenCentral()\n maven { url \'https://repo.spring.io/milestone\' }\n }\n\n}\n\nbuildscript {\n ext {\n springBootVersion = "2.2.2.RELEASE"\n }\n\n repositories {\n maven { url \'https://repo.spring.io/plugins-snapshot\' }\n jcenter()\n mavenCentral()\n }\n\n dependencies {\n classpath \'io.spring.gradle:dependency-management-plugin:1.0.7.BUILD-SNAPSHOT\'\n classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")\n }\n}\n\nsubprojects {\n version = \'1.0\'\n\n apply plugin: \'org.springframework.boot\'\n apply plugin: "io.spring.dependency-management"\n apply plugin: \'java\'\n\n ext {\n springCloudVersion = "2.2.0.RELEASE"\n springBootVersion = "2.2.2.RELEASE"\n }\n\n test {\n useJUnitPlatform()\n }\n\n repositories {\n mavenCentral()\n jcenter()\n maven { url \'https://repo.spring.io/milestone\' }\n }\n\n dependencyManagement {\n imports {\n mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"\n }\n }\n\n dependencies {\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter\', version: "${springBootVersion}"\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-actuator\', version: "${springBootVersion}"\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-security\', version: "${springBootVersion}"\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-data-jpa\', version: "${springBootVersion}"\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-jdbc\', version: "${springBootVersion}"\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-web\', version: "${springBootVersion}"\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-logging\', version: "${springBootVersion}"\n compile group: \'org.springframework.cloud\', name: \'spring-cloud-starter\', version: "${springCloudVersion}"\n compile group: \'org.springframework.cloud\', name: \'spring-cloud-starter-kubernetes\', version: \'1.1.1.RELEASE\'\n\n compile group: \'io.micrometer\', name: \'micrometer-registry-prometheus\', version: \'1.3.2\'\n\n compile group: \'com.github.piomin\', name: \'logstash-logging-spring-boot-starter\', version: \'1.2.2.RELEASE\'\n\n compile group: \'io.springfox\', name: \'springfox-swagger2\', version: \'2.9.2\'\n compile group: \'io.springfox\', name: \'springfox-swagger-ui\', version: \'2.9.2\'\n\n compileOnly \'org.projectlombok:lombok:1.18.10\'\n annotationProcessor \'org.projectlombok:lombok:1.18.10\'\n\n testCompile group: \'com.h2database\', name: \'h2\', version: \'1.4.200\'\n compile group: \'org.postgresql\', name: \'postgresql\', version: \'42.2.9\'\n\n testCompile group: \'org.springframework.cloud\', name: \'spring-cloud-stream-test-support\', version: "${springCloudVersion}"\n\n implementation project(":service-common")\n }\n\n}\n\nconfigurations {\n compileOnly {\n extendsFrom annotationProcessor\n }\n}\n\nrepositories {\n mavenCentral()\n}\nRun Code Online (Sandbox Code Playgroud)\n\n如何排除service-common模块的实现项目(":service-common")?
\n你可以这样做:
subprojects {
dependencies {
if (!project.name == "service-common") {
implementation(project(":service-common"))
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3847 次 |
| 最近记录: |