编译找到一个糟糕的gradle版本

时间:2017-12-12 03:12:57

标签: spring-boot gradle

我使用spring boot 2.在多java项目中。

我尝试构建我的主库(还没有java文件)

apply plugin: 'java-library-distribution'


plugins {
    id 'org.springframework.boot' version '2.0.0.M7'
}

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


dependencies {
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.0.0.M7'
    compile group: 'org.postgresql', name: 'postgresql', version: '42.1.4'
        testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '2.0.0.M7'
}

distributions {
    main{
        baseName = 'common-model'
    }
}

sourceCompatibility = 1.8

tasks.withType(JavaCompile) {
    options.compilerArgs = ["-Xlint:unchecked", "-Xlint:deprecation", "-parameters"]
}

在我的gradle / wrapper中,我有

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.2-bin.zip

错误我

  

由以下原因引起:org.gradle.api.internal.plugins.PluginApplicationException:   无法应用插件[id' org.springframework.boot']

     

引起:org.gradle.api.GradleException:Spring Boot插件需要   Gradle 4.0或更高版本。目前的版本是Gradle 2.13

我找不到任何2.13版本

在我的主要项目中我有

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

apply plugin: 'application'
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

mainClassName = 'com.zirgon.EmailApplication'

group = 'com.zirgon'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

tasks.withType(JavaCompile) {
    options.compilerArgs = ["-Xlint:unchecked", "-Xlint:deprecation", "-parameters"]
}

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 project(':common-model')
    compile('org.springframework.boot:spring-boot-starter-mail')

    compile group: 'org.postgresql', name: 'postgresql', version: '42.1.4'
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

5 个答案:

答案 0 :(得分:8)

您可能在本地安装gradle而不是使用包装器构建项目,即使用gradle build代替./gradlew build

答案 1 :(得分:2)

这些是我为解决同样问题所采取的步骤。

  1. 我有一个带有build.gradle文件的新项目,但在我的项目目录中没有gradle包装器的副本。我认为这导致我的IDE使用默认的gradle版本(IntelliJ),这是旧版本。
  2. Gradle已安装在我的系统上。
  3. Ran" gradle wrapper"在我的项目目录中。
  4. 编辑./gradle/wrapper/gradle-wrapper.properties并确保" distributionUrl"我指的是我想要的gradle版本(在我的情况下为4.6)。
  5. 重新构建我的版本,然后下载并安装了正确的版本。问题已解决。
  6. 我希望这有助于某人!

    我从另一个项目复制了我的gradle包装器文件夹,并编辑了./gradle/wrapper/gradle-wrapper.properties

答案 2 :(得分:0)

我正在运行Eclipse 2018-2019 / STS 4.0 / Buildship Gradle 3.0。我通过配置 Eclipse> Gradle>属性解决了这个问题。

特别是:

  1. Eclipse> Gradle>更新Gradle项目>

    Error: Spring Boot plugin requires Gradle 4.0 or later. The current version is Gradle 3.4.1
    
  2. Eclipse>窗口>已安装的软件中,看起来一切正常,所以我检查了Windows用户配置文件目录:

    Directory of C:\Users\paulsm\.gradle\wrapper\dists
      06/11/2017  09:14 AM    <DIR>          gradle-3.3-all
      12/07/2018  06:23 PM    <DIR>          gradle-3.4.1-bin <-- Eclipse using this version
      11/01/2018  02:38 PM    <DIR>          gradle-4.1-all
      11/01/2018  02:50 PM    <DIR>          gradle-4.4-all
      12/07/2018  03:02 PM    <DIR>          gradle-4.8.1-bin
    
  3. Eclipse>窗口>首选项> Gradle> Gradle分发> 从“ Gradle wrapper” =>“特定版本:4.8.1”更改

enter image description here

  1. 重新运行 Eclipse> Gradle>更新Gradle项目 =>成功

  2. 这有效地忽略了该项目的本地gradle包装器设置,并确保我将继续进行Eclipse项目的 ALL 的“正确*”设置。

    如果需要,我可以始终根据每个项目重新配置Gradle(恢复到3.4.1或更早版本)。

答案 3 :(得分:0)

另一个选择是更改Gradle包装器属性。

错误消息:

> Failed to apply plugin [id 'org.springframework.boot']
   > Spring Boot plugin requires Gradle 4.4 or later. The current version is Gradle 4.0

从以下位置更改gradle-wrapper.properties(位于/ gradle / wrapper /中)中的distributionUrl值:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-bin.zip

distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-bin.zip

答案 4 :(得分:0)

打开gradle / wrapper / gradle-wrapper.properties,并将distributionUrl属性更改为4.6版本或更高版本。

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip