3

I'm trying to clean build project with Spring boot plugin and getting the following message:

Execution failed for task ':lecture05:findMainClass'. Unable to find a single main class from the following candidates [ru.atom.boot.mm.MatchMakerApp, ru.atom.boot.hw.HelloSpringBoot]

I can't find any information for this case here. I've found a couple of questions like this, but this is for maven. How to config my project correctly?
I was trying to add

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

to build.gradle

My root project:

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
}

Subproject, I'm trying to build, that has two Main classes:

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 Answers1

2

Try to replace it with:

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

As jprism mentioned you can read more in Spring Boot plugin docs

Russiancold
  • 1,179
  • 1
  • 11
  • 26