我有项目的主要build.gradle
文件
buildscript {
repositories {
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${spring_boot_version}")
}
}
def javaProjects = subprojects.findAll {
it.name in ["common", "core", "web", "app"]
}
allprojects {
apply plugin: 'idea'
apply plugin: 'eclipse'
repositories {
jcenter()
}
}
idea {
project {
jdkName = "1.8"
languageLevel = "1.8"
vcs = "Git"
}
}
configure(javaProjects) {
apply plugin: 'java'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'findbugs'
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
...
}
}
和build.gradle
模块的app
文件,我有一个配置来运行gradle
apply plugin: 'org.springframework.boot'
dependencies {
...
}
springBoot {
mainClass = "com.web.WebApplication"
}
jar {
manifest {
attributes 'Implementation-Title': "Rest-Web-Services",
'Implementation-Version': "1.0",
'Main-Class': "com.web.WebApplication"
}
}
当构建gradle抛出
时FAILURE: Build failed with an exception.
* Where:
Build file '...\REST-Web-Services\app\build.gradle' line: 28
* What went wrong:
A problem occurred evaluating project ':app'.
> Could not set unknown property 'mainClass' for object of type org.springframework.boot.gradle.dsl.SpringBootExtension.
如何设置启动mainClass
类?
答案 0 :(得分:3)
配置主类
默认情况下,可执行文件存档的主类将通过在任务的类路径上的目录中使用public static void main(String[])
方法查找类来自动配置。
还可以使用任务的mainClassName
属性来显式配置主类:
bootJar {
mainClassName = 'com.example.ExampleApplication'
}
或者,可以使用Spring Boot DSL的mainClassName
属性在项目范围内配置主类名称:
springBoot {
mainClassName = 'com.example.ExampleApplication'
}
如果已应用了应用程序插件,则其mainClassName
项目属性可用于相同目的:
mainClassName = 'com.example.ExampleApplication'
最后,可以在任务清单上配置Start-Class
属性:
bootJar {
manifest {
attributes 'Start-Class': 'com.example.ExampleApplication'
}
}
答案 1 :(得分:1)
我遵循了没有声明的Spring Restful Service tutorial,并且它有效。请尝试删除mainClass
声明。
Spring Boot gradle插件提供了许多方便的功能:
它收集类路径上的所有jar并构建一个可运行的“über-jar”,这使得执行和传输服务更加方便。
它搜索public static void main()方法以标记为可运行的类。
它提供了一个内置的依赖项解析器,它设置版本号以匹配Spring Boot依赖项。您可以覆盖任何您希望的版本,但它将默认为Boot的所选版本集。
答案 2 :(得分:0)
基本上,这大约是spring-boot gradle plugin
:
mainClass
属性,mainClassName
。