Gradle не может найти классы в SubProject

Я хотел бы построить MultiProject с помощью Gradle.

Плоские каталоги RootBroject и SubProject. Я думаю, это просто. Но Gradle похоже не может найти классы в SubProject.

Как я могу это сделать в этом случае?

Директории проекта такие:

RootProject
+- build.gradle
+- settings.gradle
+- src
SubProject
+- src
+- build
 +- classes

И сборка подпроекта:

gradlew :DataAccessProject:compileJava

было BUILD SUCCESSFUL, и я нашел классы в SubProject/build/classes, но Sub+RootProject Build:

gradlew :compileJava

было BUILD FAILED, а сообщений в RootProject больше 100, например

import a.b.c.SomeClassOfSubProject;
            ^

настройки.градле:

rootProject.name = 'RootProject'

includeFlat 'SubProject'

построить.градле:

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??
}

person isexxx    schedule 27.12.2018    source источник


Ответы (2)


Вы перепроверили все объявления пакетов в своем коде?

person miles_b    schedule 27.12.2018

Я не могу найти причину, но этот 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")
}
person isexxx    schedule 16.01.2019