【问题标题】:Spring boot 1.3.3 is not building with gradle 3.0Spring Boot 1.3.3 未使用 gradle 3.0 构建
【发布时间】:2017-07-29 06:01:41
【问题描述】:

我花了几个小时才找到以下信息,因此想到分享以下信息:

Spring boot 1.3.3 项目未使用 gradle 3 构建,因为 spring boot gradle 插件是为 gradle 2 构建的。因此,仅使用 gradle 2 而不是 gradle 3 构建此项目。

$ gradle build
Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
        at build_2yz3q0eod1vuhee49o6tow8db.run(C:\Users\nm_su\Projects\provisioning\mobipm\build.gradle:23)

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Users\nm_su\Projects\provisioning\mobipm\build.gradle' line: 26

* What went wrong:
A problem occurred evaluating root project 'mobipm'.
> Failed to apply plugin [class 'io.spring.gradle.dependencymanagement.DependencyManagementPlugin']
   > Could not create task of type 'DependencyManagementReportTask'.

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

BUILD FAILED

Total time: 11.67 secs

$ gradle --version

------------------------------------------------------------
Gradle 3.2.1
------------------------------------------------------------

Build time:   2016-11-22 15:19:54 UTC
Revision:     83b485b914fd4f335ad0e66af9d14aad458d2cc5

Groovy:       2.4.7
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_111 (Oracle Corporation 25.111-b14)
OS:           Windows 10 10.0 amd64

现在让我们尝试使用 gradle 2.14.1 构建,

$ gradle build
:framework:compileJava
:framework:processResources UP-TO-DATE
:framework:classes
:framework:jar
:compileJava
:processResources UP-TO-DATE
:classes
:findMainClass
:jar
:bootRepackage
:assemble
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test
:check
:build
:framework:findMainClass
:framework:bootRepackage
:framework:assemble
:framework:compileTestJava
:framework:processTestResources UP-TO-DATE
:framework:testClasses
:framework:test
:framework:check
:framework:build

BUILD SUCCESSFUL

Total time: 31.104 secs

$ gradle --version

------------------------------------------------------------
Gradle 2.14.1
------------------------------------------------------------

Build time:   2016-07-18 06:38:37 UTC
Revision:     d9e2113d9fb05a5caabba61798bdb8dfdca83719

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_111 (Oracle Corporation 25.111-b14)
OS:           Windows 10 10.0 amd64

如果您使用的是 eclipse 插件“Buildship Gradle Integration 2.0”,那么在导入 Spring boot 1.3.3 项目时,请显式选择旧版本的 gradle,如下所示

【问题讨论】:

  • 我有类似的问题。从 gradle 站点下载 gradle zip 并使用本地安装目录解决此问题。
  • 你应该在任何 Gradle 构建的项目中使用 Gradle 包装器,并且是最小的。然后构建始终按设计正常工作,因为包装器将使用构建设计和测试的确切版本的 Gradle 运行构建,并且运行构建唯一需要的是兼容的已安装 Java,无需安装 Gradle必要的。您甚至可以使用另一个 Gradle 项目的包装器来引导新的 Gradle 项目,而无需在本地手动安装 Gradle。

标签: gradle spring-boot


【解决方案1】:

确保 build.gradle 具有如下“包装器”任务:

task wrapper(type: Wrapper) {
     gradleVersion = '2.9'
}

从命令行运行“gradle wrapper”,它将为 unix 和 windows 创建 gradle 包装器。将它们推送到源代码控制,这样就没有手动步骤。

gradle wrapper
git add gradlew gradlew.bat gradle
git commit -m "Adding gradle wrapper to git repo"
git push

所以所有未来的构建都可以使用 gradlew

$ ./gradlew build
:framework:compileJava
:framework:processResources
:framework:classes
:framework:jar
:compileJava
:processResources
:classes
:findMainClass
:jar
:bootRepackage
:assemble
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test
:check
:build
:framework:findMainClass
:framework:bootRepackage
:framework:assemble
:framework:compileTestJava
:framework:processTestResources UP-TO-DATE
:framework:testClasses
:framework:test
:framework:check
:framework:build

BUILD SUCCESSFUL

Total time: 42.712 secs

感谢吸血鬼的回答...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 2020-04-13
    • 2016-06-26
    • 2016-08-31
    • 2016-02-08
    • 2018-08-25
    • 1970-01-01
    • 2018-08-26
    相关资源
    最近更新 更多