Java 可以从gradle中的根模块获取类吗?
我有多模块spring boot项目。根项目是“BookStore”,子模块是“api”。我尝试在“书店”的“api”类中使用。但我有一个错误: 评估项目“:api”时出现问题。 在项目“:api”中找不到路径为“:BookStore”的项目 My root settings.gradle:Java 可以从gradle中的根模块获取类吗?,java,spring-boot,gradle,Java,Spring Boot,Gradle,我有多模块spring boot项目。根项目是“BookStore”,子模块是“api”。我尝试在“书店”的“api”类中使用。但我有一个错误: 评估项目“:api”时出现问题。 在项目“:api”中找不到路径为“:BookStore”的项目 My root settings.gradle: pluginManagement { plugins { id 'org.springframework.boot' version "2.3.3.RELEASE"
pluginManagement {
plugins {
id 'org.springframework.boot' version "2.3.3.RELEASE"
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
}
}
rootProject.name = 'BookStore'
include 'api'
根目录的build.gradle:
plugins {
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'java'
id 'idea'
}
allprojects {
group = 'com.aleksandr'
version = '1.0-SNAPSHOT'
description = 'BookStore'
}
subprojects {
repositories {
mavenCentral()
}
apply {
plugin("io.spring.dependency-management")
}
}
java.sourceCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenLocal()
maven {
url = uri('https://repo.maven.apache.org/maven2/')
}
}
dependencies {
implementation project(':api')
}
和子模块的build.gradle:
plugins {
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'java'
id 'idea'
}
repositories {
mavenCentral()
maven {
url = uri('https://repo.maven.apache.org/maven2/')
}
}
dependencies {
compile project(":BookStore")
implementation 'org.springframework.boot:spring-boot-starter-web'
}
我做错了什么?如何从根模块获取类?如果需要创建从子项目(此处为
api
)到根项目的依赖项,则必须使用以下依赖项符号之一:
子模块构建。渐变
dependencies {
api(project(":")) // ":" is the identifier for the rootProject
// OR
api(rootProject) // "rootProject" varible points to the root Project instance.
}
但在您的示例中还有另一个问题:您正在根项目和api
子项目之间创建一个依赖循环,这是不允许的
依我看,你的
api
子项目不应该依赖于根项目。那么,架构有问题吗?是的,似乎有问题。我假设您的根项目“BookStore”是包含@springbootplication入口点类的主应用程序项目;此项目“使用”子JCets,如api
。但是为什么api
要依赖于这个主要的应用程序项目呢??我想这里有点不对劲