如何使用 Spring Boot Gradle 插件 2.1.* 构建不可执行的 jar(库)
How to build not executable jar (library) with Spring Boot Gradle Plugin 2.1.*
我正在尝试建立一个图书馆。我的 build.gradle 文件中有 Spring Boot Gradle 插件:
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE'
}
我的图书馆没有主class。为了防止 'Main class not configured ...' 错误,我添加到 build.gradle:
bootRepackage {
enabled = false
}
但出现错误:
A problem occurred evaluating root project 'mysuperlibrary'.
Could not find method bootRepackage() for arguments [build_3886uiniuyuorta9lpa9n4f5c$_run_closure3@1975ec48] on root
project 'mysuperlibrary' of type org.gradle.api.Project.
在 Spring 引导 Gradle 插件 1.5.16 上一切正常,但不适用于 2.1.3。
更新:我使用这个插件是因为没有它我无法解析 testCompile 'org.springframework.boot:spring-boot-starter-test' 。当我删除插件时,我可以为测试构建项目位依赖性消失。
更新:
去掉插件直接添加测试依赖即可。例如。使用 JUnit 5:
dependencies {
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.1'
....
testImplementation(
"org.junit.jupiter:junit-jupiter-api:$jUnitVersion",
"org.junit.jupiter:junit-jupiter-params:$jUnitVersion"
)
testRuntimeOnly(
"org.junit.jupiter:junit-jupiter-engine:$jUnitVersion"
)
test {
useJUnitPlatform()
}
}
旧版(适用于多模块项目):
您可以使用应用标志:
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE' apply: false
}
并写一个函数
def isAbstract(project) {
return ['mysuperlibrary'].contains(project.name)
}
subprojects { project ->
if (isAbstract(project) {
return
}
apply plugin: 'org.springframework.boot'
}
现在我在我所有的库中使用 2.1.* 版本的 spring 插件。 'dependencies' section前需要添加next:
bootJar {
enabled = false
}
jar {
enabled = true
}
可能是这样的:
tasks {
bootJar { mainClassName = "NONE" }
}
我正在尝试建立一个图书馆。我的 build.gradle 文件中有 Spring Boot Gradle 插件:
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE'
}
我的图书馆没有主class。为了防止 'Main class not configured ...' 错误,我添加到 build.gradle:
bootRepackage {
enabled = false
}
但出现错误:
A problem occurred evaluating root project 'mysuperlibrary'.
Could not find method bootRepackage() for arguments [build_3886uiniuyuorta9lpa9n4f5c$_run_closure3@1975ec48] on root project 'mysuperlibrary' of type org.gradle.api.Project.
在 Spring 引导 Gradle 插件 1.5.16 上一切正常,但不适用于 2.1.3。
更新:我使用这个插件是因为没有它我无法解析 testCompile 'org.springframework.boot:spring-boot-starter-test' 。当我删除插件时,我可以为测试构建项目位依赖性消失。
更新:
去掉插件直接添加测试依赖即可。例如。使用 JUnit 5:
dependencies {
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.1'
....
testImplementation(
"org.junit.jupiter:junit-jupiter-api:$jUnitVersion",
"org.junit.jupiter:junit-jupiter-params:$jUnitVersion"
)
testRuntimeOnly(
"org.junit.jupiter:junit-jupiter-engine:$jUnitVersion"
)
test {
useJUnitPlatform()
}
}
旧版(适用于多模块项目): 您可以使用应用标志:
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE' apply: false
}
并写一个函数
def isAbstract(project) {
return ['mysuperlibrary'].contains(project.name)
}
subprojects { project ->
if (isAbstract(project) {
return
}
apply plugin: 'org.springframework.boot'
}
现在我在我所有的库中使用 2.1.* 版本的 spring 插件。 'dependencies' section前需要添加next:
bootJar {
enabled = false
}
jar {
enabled = true
}
可能是这样的:
tasks {
bootJar { mainClassName = "NONE" }
}