【发布时间】:2018-08-31 06:30:39
【问题描述】:
我有一些代码我不想根据条件包含在 jar 文件中。
我的构建脚本看起来像
plugins {
id 'java'
id 'org.springframework.boot' version '2.0.0.RELEASE'
}
sourceSets {
main {
java {
if (project.environment == 'prod') {
exclude '**/dangerous/**'
}
forEach {
println it.absolutePath
}
}
}
}
现在,当我使用 gradlew clean build bootJar -Penvironment=prod 运行脚本时,除了危险的 java 文件之外,所有内容的绝对路径都会打印出来,但它们仍然包含在 jar 中。
如果我删除引导插件并运行jar 任务,危险的类文件仍然包含在 jar 中。
gradlew clean build jar -Penvironment=prod
plugins {
id 'java'
}
sourceSets {
main {
java {
if (project.environment == 'prod') {
exclude '**/dangerous/**'
}
forEach {
println it.absolutePath
}
}
}
}
如果我在 jar 任务中添加 exclude 子句,则不会打印危险文件,并且它们不会包含在 jar 中。
gradlew clean build jar -Penvironment=prod
plugins {
id 'java'
}
sourceSets {
main {
java {
if (project.environment == 'prod') {
exclude '**/dangerous/**'
}
forEach {
println it.absolutePath
}
}
}
}
jar {
exclude '**/dangerous/**'
}
如果我启用引导插件,并使用 bootJar 任务(继承自 Jar 任务)(gradlew clean build bootJar -Penvironment=prod),我看不到打印的危险文件,但文件仍然包含在 jar 中。
plugins {
id 'java'
id 'org.springframework.boot' version '2.0.0.RELEASE'
}
sourceSets {
main {
java {
if (project.environment == 'prod') {
exclude '**/dangerous/**'
}
forEach {
println it.absolutePath
}
}
}
}
bootJar {
exclude '**/dangerous/**'
}
如何使用 Spring Boot Gradle 插件和 bootJar 任务有条件地排除 java 文件?
【问题讨论】:
标签: java spring-boot gradle