【发布时间】:2018-12-05 12:21:32
【问题描述】:
我需要从 springBoots bootJar gradle 任务中排除特定的依赖项(类似于 maven 中提供的范围)。
我尝试了自定义配置,但 dependency-which-should-not-be-in-bootJar 仍包含在生成的 jar 中。
configurations{
provided
implementation.extendsFrom provided
}
dependencies {
// ...
provided "dependency-which-should-not-be-in-bootJar"
}
jar {
from configurations.compile - configurations.provided
from configurations.runtime
}
bootJar {
from configurations.compile - configurations.provided
from configurations.runtime
launchScript()
}
【问题讨论】:
-
bootJar默认包含运行时类路径。它继承自implementation,您已将其配置为从provided扩展。因此,运行时类路径包含您提供的依赖项,因此它包含在 fat jar 中。 -
我还尝试将我的
provided更改为providedRuntime并让它从runtime扩展,之后我尝试配置bootJar 以使用from configurations.runtime - configurations.providedRuntime覆盖运行时包含,我认为应该这样做工作,但它没有。您能否指出正确的方向,如何正确排除依赖项与 jar 一起打包。
标签: spring-boot gradle dependency-management executable-jar