Spring和Gradle构建:没有这样的属性:类的mainClassName:org.gradle.api.internal.project.DefaultProject_Decorated

时间:2017-02-28 13:17:56

标签: java spring gradle spring-boot

我有Spring Boot 1.1和1.3项目,偶尔在更改build.gradle时出现错误

  

没有这样的属性:class的mainClassName:

     

失败:构建因异常而失败。

     
      
  • 其中:构建文件...行:43

  •   
  • 出了什么问题:评估根项目'...'时出现问题。

         
        

    没有这样的属性:类的mainClassName:org.gradle.api.internal.project.DefaultProject_Decorated

      
  •   

的build.gradle

buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url 'https://plugins.gradle.org/m2/'
        }
    }

    dependencies {
        ...
        classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE' //1.1.7.RELEASE'
        ...
    }
}

// Application Plugins
apply plugin: 'java'
apply plugin: 'spring-boot'

第43行是mainClassName = 'com....Main'

2 个答案:

答案 0 :(得分:0)

好吧,我只能说,对于Spring Boot 1.1 gradle插件

[72, 88, 100, 124, 123, None]无法使用mainClassName =

但对于Spring Boot 1.3来说,这将是错误的 所以Spring Boot 1.1 gradle插件正在应用application_plugin。

我可以看到比较apply plugin: 'application'输出,其中包含application_plugin定义的任务 https://docs.gradle.org/current/userguide/application_plugin.html#sec:application_tasks

答案 1 :(得分:0)

这是由@ToYonos

提出的

根据http://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-gradle-plugin.html#build-tool-plugins-gradle-packaging

  

要启动的主类可以使用配置选项指定,也可以通过向清单添加Main-Class属性来指定。如果你没有指定一个主类,那么插件将使用apublic static void main(String [] args)方法搜索一个类。

因此,要么删除mainClassName指令,要么将其设置为:

bootRepackage {
    mainClass = 'demo.Application' 
}