我正在使用Spring boot gradle插件版本 1.5.1 RELEASE ,如下所示。 webProject抱怨缺少属性' mainClass '并且仅在我运行' webProject:build '时才有效。这是预期用途吗?
修改:更新了构建脚本并删除了#spring; boot'来自allProjects的插件。不得不添加' bootRepackage'在Web项目中,因为它在此步骤失败 - 具有相同的错误。添加' bootRepackage'没有帮助。
buildscript {
ext {
springBootVersion = '1.5.1.RELEASE'
}
repositories {
mavenLocal()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.1.RELEASE")
}
}
plugins {
id 'org.springframework.boot' version '1.5.1.RELEASE'
}
defaultTasks 'clean', 'build'
apply plugin: 'java'
apply plugin: 'war'
sourceCompatibility = 1.7
targetCompatibility = 1.7
allprojects {
apply plugin: 'java'
//apply plugin: 'org.springframework.boot' -- Commented out based on the answer
repositories {
mavenLocal()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
//all dependencies
}
}
project('aProject') {
dependencies {
compile(project(':bProject'))
}
}
project('webProject') {
apply plugin: 'war'
apply plugin: 'org.springframework.boot'
war {
baseName = 'webProject'
version = '1.0.0-SNAPSHOT'
}
dependencies {
compile(project(':aproject'))
compile(project(':bProject'))
compile 'org.springframework.boot:spring-boot-starter-tomcat'
}
springBoot {
mainClass = 'com.abc.SomeApplication'
}
bootRepackage{
enabled = false
mainClass = 'com.abc.SomeApplication'
}
}
答案 0 :(得分:2)
不要在主项目中使用Spring Boot gradle插件,只能在webProject
子模块中使用。
答案 1 :(得分:1)
我在多模块Spring启动项目中遇到了类似的问题。 编译没有主类的模块A时。主类在不同的模块中(模块B)。
我在该模块A的build.gradle中添加了一个插件。
apply plugin: 'application'
mainClassName = "module B.ITS_MAIN_CLASS"
然后它有效。