Gradle和Spring的几个模块

时间:2017-10-25 22:32:36

标签: java spring spring-boot gradle

我正在尝试使用Spring启动插件进行clean build项目并收到以下消息:

  

任务执行失败':lecture05:findMainClass'。   无法从以下候选人中找到单个主要类[ru.atom.boot.mm.MatchMakerApp,ru.atom.boot.hw.HelloSpringBoot]

我无法找到此案例here的任何信息。我发现了一些像this这样的问题,但这是针对maven的。如何正确配置我的项目? 我试图添加

bootRepackage {
    mainClass = 'ru.atom.boot.mm.MatchMakerApp'
}

build.gradle

我的根项目:

plugins {
id 'org.springframework.boot' version '1.5.8.RELEASE'
id 'com.github.kt3k.coveralls' version '2.6.3'
}

bootRepackage {
mainClass = 'ru.atom.boot.mm.MatchMakerApp'
}

ext {
jdkVersion = 1.9

jettyVersion = "9.4.7.v20170914"
junitVersion = "4.12"
jacksonVersion = "2.9.1"
log4jVersion = "2.7"
jetbrainsAnnotationVersion = "15.0"
okhttpVersion = "3.6.0"
jerseyVersion = "2.26"
gsonjVersion = "2.7"
postgresVersion = "9.4-1200-jdbc41"
jetbrainsAnnotationVersion = "15.0"
hibernateVersion = "5.2.3.Final"
websocketVersion = "9.4.3.v20170317"
jolVersion = "0.8"
}

allprojects {
group = "technoatom"
version = "1.0-SNAPSHOT"

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'checkstyle'
apply plugin: 'jacoco'

repositories {
    mavenCentral()
}

sourceCompatibility = jdkVersion
targetCompatibility = jdkVersion
}

subprojects {
checkstyle {
    ignoreFailures = false
    toolVersion = '7.5'
    configFile = rootProject.file('config/checkstyle/checkstyle.xml')
}

tasks.withType(Checkstyle) {
    reports {
        xml.enabled false
        html.destination 
"$rootProject.buildDir/report/${project.name}.html"
        html.stylesheet 
resources.text.fromFile(rootProject.file('config/checkstyle/checkstyle-custom.xsl'))
    }
}

}

ext.libraries = [
    spring_boot : [
        "org.springframework.boot:spring-boot-starter-web",
        "org.springframework.boot:spring-boot-starter-actuator"
    ],

    spring_boot_test : "org.springframework.boot:spring-boot-starter-test",

    jetty_server : "org.eclipse.jetty:jetty-server:$jettyVersion",
    jetty_servlet: "org.eclipse.jetty:jetty-servlet:$jettyVersion",
    junit: "junit:junit:$junitVersion",
    log4j: [
        "org.apache.logging.log4j:log4j-api:$log4jVersion",
        "org.apache.logging.log4j:log4j-core:$log4jVersion"
    ],
    jetbrainsAnnotations: "org.jetbrains:annotations:$jetbrainsAnnotationVersion",
    okhttp: "com.squareup.okhttp3:okhttp:$okhttpVersion",
    jersey_server: "org.glassfish.boot.core:boot-server:$jerseyVersion",
    jersey_hk2: "org.glassfish.boot.inject:boot-hk2:$jerseyVersion",
    jersey_containers: "org.glassfish.boot.containers:boot-container-servlet:$jerseyVersion",
    jersey_test:
            "org.glassfish.boot.test-framework.providers:boot-test-framework-provider-grizzly2:$jerseyVersion",
    gson: "com.google.code.gson:gson:$gsonjVersion",
    postgres: "org.postgresql:postgresql:$postgresVersion",
    hibernate: "org.hibernate:hibernate-core:$hibernateVersion",
    websocketclient: "org.eclipse.jetty.websocket:websocket-client:$websocketVersion",
    websocketserver: "org.eclipse.jetty.websocket:websocket-server:$websocketVersion",
    websocketapi: "org.eclipse.jetty.websocket:websocket-api:$websocketVersion",
    jackson: "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion",
    jol: "org.openjdk.jol:jol-core:$jolVersion",
    jol_samples: "org.openjdk.jol:jol-samples:$jolVersion"
]

jacocoTestReport {
additionalSourceDirs = 
files(subprojects.sourceSets.main.allSource.srcDirs)
sourceDirectories = 
files(subprojects.sourceSets.main.allSource.srcDirs)
classDirectories = files(subprojects.sourceSets.main.output)
executionData = files(subprojects.jacocoTestReport.executionData)
onlyIf = {
    true
}

reports {
        xml.enabled = true
        html.enabled = true
}
doFirst {
    executionData = files(executionData.findAll {
        it.exists()
    })
}
}

coveralls {
sourceDirs = 

files(subprojects.sourceSets.main.allSource.srcDirs).files.absolutePath
}

子项目,我正在尝试构建,它有两个主要类:

dependencies {
compile rootProject.libraries.spring_boot
compile rootProject.libraries.log4j


testCompile rootProject.libraries.junit
testCompile rootProject.libraries.spring_boot_test
}

sourceSets {
main {
    java {
        srcDirs = ['src/main/java']
    }
}
test {
    java {
        srcDirs = ['src/test/java']
    }
}
}

1 个答案:

答案 0 :(得分:1)

尝试将其替换为:

springBoot {
    mainClass = 'ru.atom.boot.mm.MatchMakerApp'
}

jprism所述,您可以在Spring Boot插件docs

中阅读更多内容