我想通过Gradle构建MultiProject。
RootBroject和SubProject的平面目录。我认为这很简单。 但是Gradle看起来在SubProject中找不到类。
在这种情况下我该怎么办?
项目目录类似于:
RootProject
+- build.gradle
+- settings.gradle
+- src
SubProject
+- src
+- build
+- classes
以及子项目的构建:
gradlew :DataAccessProject:compileJava
是BUILD SUCCESSFUL
,我在SubProject / build / classes中找到了这些类
但是Sub + RootProject构建:
gradlew :compileJava
是BUILD FAILED
,并且像RootProject中的消息一样,消息超过100条
import a.b.c.SomeClassOfSubProject;
^
settings.gradle:
rootProject.name = 'RootProject'
includeFlat 'SubProject'
build.gradle:
buildscript {
ext {
springBootVersion = '2.0.6.RELEASE'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("org.springframework:springloaded:1.2.1.RELEASE")
classpath("io.spring.gradle:dependency-management-plugin:0.6.1.RELEASE")
}
}
allprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'abc'
sourceCompatibility = 11
targetCompatibility = 11
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-jdbc')
implementation('org.projectlombok:lombok:1.18.4')
implementation fileTree(dir: 'lib', include: ['*.jar'])
}
}
project(':SubProject') {
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
implementation('org.springframework.boot:spring-boot-starter-thymeleaf')
implementation project(':SubProject') // Can't find classes in SubProject??
}
答案 0 :(得分:0)
您是否已仔细检查代码中的所有包声明?
答案 1 :(得分:0)
我找不到明确的原因,
但是这个build.gradle达到了BUILD SUCCESSFUL
。
buildscript {
ext {
springBootVersion = "2.1.1.RELEASE"
}
repositories {
mavenCentral()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
allprojects {
apply plugin: "java"
apply plugin: "io.spring.dependency-management"
[compileJava, compileTestJava]*.options*.encoding = "UTF-8"
repositories {
mavenCentral()
}
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:$springBootVersion"
}
}
sourceCompatibility = 11
targetCompatibility = 11
dependencies {
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.modelmapper.extensions:modelmapper-spring:2.3.0")
...
compileOnly("org.projectlombok:lombok:1.18.4")
annotationProcessor("org.projectlombok:lombok:1.18.4")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.security:spring-security-test:5.1.1.RELEASE")
...
}
}
project(":SubProject") {
dependencies {
implementation("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2")
...
}
}
apply plugin: "org.springframework.boot"
apply plugin: "war"
dependencies {
implementation project(":SubProject")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
}