org.gradle.initialization.DefaultSettings_Decorated无法强制转换为org.gradle.api.internal.project.ProjectInternal

时间:2017-03-22 13:59:48

标签: java spring gradle spring-boot

我尝试创建spring boot应用程序:

我从https://start.spring.io/

中选择了我需要的组件

现在我想构建应用程序并且它会失败:

FAILURE: Build failed with an exception.

* Where: 
Settings file 'D:\objectsharingsystem\settings.gradle' line: 2

* What went wrong:
A problem occurred evaluating settings 'object-sharing-system'.
> Failed to apply plugin [id 'org.gradle.java']
   > org.gradle.initialization.DefaultSettings_Decorated cannot be cast to org.gradle.api.internal.project.ProjectInternal

* Try:   
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

settings.gradle:

rootProject.name = 'object-sharing-system'
apply plugin: 'java'
compileJava {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
}

的build.gradle:

buildscript {
    ext {
        springBootVersion = '2.0.0.BUILD-SNAPSHOT'
    }
    repositories {
        mavenCentral()
        maven { url "https://repo.spring.io/snapshot" }
        maven { url "https://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

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

version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
    maven { url "https://repo.spring.io/snapshot" }
    maven { url "https://repo.spring.io/milestone" }
}


dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-jdbc')
    compile('org.springframework.boot:spring-boot-starter-security')
    compile('org.springframework.boot:spring-boot-starter-validation')
    compile('org.springframework.boot:spring-boot-starter-web')
    runtime('com.microsoft.sqlserver:mssql-jdbc')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

请帮助找出错误。

2 个答案:

答案 0 :(得分:2)

settings.gradle无法处理Project级别插件的应用。

apply plugin移除compileJavasettings.gradle。 您已在build.gradle中设置了sourceCompatibility

答案 1 :(得分:0)

请参阅here所在的位置

  

设置文件中的方法调用被委托给设置对象。有关更多信息,请查看API文档中的Settings类。

build.gradle不同,apply中的settings.gradle方法需要Plugin<Settings>而不是Plugin<Project>java插件为Plugin<Project>,无法在settings.gradle

中应用