在构建gradle项目时,我遇到错误 - FAILURE:构建因异常而失败。
其中: 构建文件'/Users/vdubey/Documents/microservices/workspace/Promo-Service/build.gradle'行:30
出了什么问题: 评估根项目“促销 - 服务”时出现问题。
在org.gradle.api.Project类型的根项目'Promo-Service'上找不到参数[build_3jq74tz48uic808y18txabjvx $ _run_closure1 @ 5c4aa147]的方法bootJar()。
尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。
有什么理由失败?
答案 0 :(得分:5)
我在遵循Spring Boot with Docker指南时遇到此错误,因为我的应用程序使用的是Spring Boot 1.5.10.RELEASE,而bootRun仅在2.0.0中引入。
幸运的是,Spring Boot Docker指南代码位于Github存储库中,因此我能够导航回2.0.0之前的版本:https://github.com/spring-guides/gs-spring-boot-docker/tree/8933f6efa9a94cf596095658dc0b81986d11a3ec
请参阅已完成的build.gradle文件以获取1.5.10-RELEASE:
// This is used as the docker image prefix (org)
group = 'springio'
jar {
baseName = 'gs-spring-boot-docker'
version = '0.1.0'
}
// tag::task[]
docker {
name "${project.group}/${jar.baseName}"
files jar.archivePath
buildArgs(['JAR_FILE': "${jar.archiveName}"])
}
// end::task[]
答案 1 :(得分:2)
考虑检查Spring Boot的gradle插件是否存在: https://plugins.gradle.org/plugin/org.springframework.boot
对于Gradle 2.1和更高版本:
plugins {
id "org.springframework.boot" version "2.1.0.RELEASE"
}
对于较早的Gradle版本:
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:2.1.0.RELEASE"
}
}
apply plugin: "org.springframework.boot"
答案 2 :(得分:0)
在构建我下载的存储库时出现此错误。
通过修改build.gradle
使其包含spring-boot-gradle-plugin
的buildscript依赖项并将org.springframework.boot
作为插件应用
buildscript {
ext {
springBootVersion = '<Spring boot version>'
}
repositories {
...<my repository config>...
}
// These are gradle build dependencies and not application requirements
dependencies {
...<other dependencies>...
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
}
}
apply plugin: 'org.springframework.boot'
答案 3 :(得分:0)
当我关注official Spring testing-web guide时遇到了这个问题。他们提供了如下的初始gradle文件。
buildscript {
repositories { mavenCentral() }
}
plugins { id "io.spring.dependency-management" version "1.0.4.RELEASE" }
ext { springBootVersion = '2.0.5.RELEASE' }
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
bootJar {
baseName = 'gs-testing-web'
version = '0.1.0'
}
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("org.springframework.boot:spring-boot-starter-test")
}
task wrapper(type: Wrapper) {
gradleVersion = '4.6'
}
但是当我运行./gradlew clean
命令时,出现以下异常
Could not find method bootJar() for arguments [] on root project '' of type org.gradle.api.Project.
问题是不是使用plugins { id "io.spring.dependency-management" version "1.0.4.RELEASE" }
,而是使用id "org.springframework.boot" version "2.1.3.RELEASE"
。同样不要忘记java和io.spring.dependency-management插件。
apply plugin: 'java'
apply plugin: 'io.spring.dependency-management'
8.1。对Java插件做出反应
将Gradle的java插件应用于项目时,Spring Boot插件: 创建一个名为bootJar的BootJar任务,该任务将创建一个可执行文件, 该项目的胖子。广口瓶将容纳所有东西 主要源集的运行时类路径;类打包在 BOOT-INF / classes和jars打包在BOOT-INF / lib中
8.4。对依赖管理插件的反应
将io.spring.dependency-management插件应用于 项目,Spring Boot插件将自动导入 spring-boot-depends bom。
我在下面共享了有效的build.gradle文件,对于任何有此问题的人来说,它都是一个起点。
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java project to get you started.
* For more details take a look at the Java Quickstart chapter in the Gradle
* user guide available at https://docs.gradle.org/4.6/userguide/tutorial_java_projects.html
*/
plugins {
id "org.springframework.boot" version "2.1.3.RELEASE"
}
apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'io.spring.dependency-management'
ext {
springBootVersion = '2.1.3.RELEASE'
}
// In this section you declare where to find the dependencies of your project
repositories {
// You can declare any Maven/Ivy/file repository here.
mavenCentral()
}
bootJar {
mainClassName = 'com.softwarelabs.App'
baseName = 'spring-boot-integration-test'
version = '0.1.0'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
// This dependency is found on compile classpath of this component and consumers.
compile 'com.google.guava:guava:23.0'
testCompile("org.springframework.boot:spring-boot-starter-test")
// Use JUnit test framework
testCompile 'junit:junit:4.12'
}
task wrapper(type: Wrapper) {
gradleVersion = '4.6'
}
有关更多详细信息,请检查spring boot gradle plugin documentation getting started部分。