![](/img/trans.png)
[英]Generate Maven “provided” dependency in pom.xml from Gradle “compileOnly”
[英]Gradle: exclude dependencies provided from compileOnly from fat jar
我在compileOnly
配置和其他几个库中使用了一个巨大的依赖项(Spark)。 我正在尝试构建一个胖 jar,当然,没有compileOnly
依赖项。 Gradle 做得很好,但是,一些库声明了compile
/ runtimeOnly
依赖项,这些依赖项也是compileOnly
巨大依赖项的依赖项,例如:
my-module
|-> compileOnly: spark
| ...
| \-> compile: scala-reflect
| ...
\-> implementation: library
...
\-> runtimeOnly: scala-reflect
这导致scala-reflect
作为运行时依赖项包含在 jar 中,我试图避免这种情况。 这里仅以 Scala 为例,实际上还有更多类似的(Jackson,Apache Commons 的一部分,……)。
有没有办法强制compileOnly
训练依赖?
正如我所看到的,我可以手动exclude
那些传递依赖项并将它们重新声明为compileOnly
,但这会有点混乱(我错过了什么?我是否排除了实际上没有提供的东西?)。
您可以尝试通过dependencies
指令强制影子插件删除那些不需要的dependencies
。
例如:
shadowJar {
dependencies {
exclude(dependency('org.scala-lang:scala-reflect:.*'))
}
}
更多信息在这里https://imperceptiblethoughts.com/shadow/configuration/dependencies/#filtering-dependencies
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.