Gradle не может найти классы в SubProject - PullRequest
0 голосов
/ 27 декабря 2018

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

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

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

Директории проекта выглядят так:

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

И SubProject Build:

gradlew :DataAccessProject:compileJava

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

gradlew :compileJava

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

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

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Я не могу найти причину, но этот 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")
}
0 голосов
/ 27 декабря 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...