如何在 Maven 构建期间排除 shadowJar?

时间:2021-04-20 13:47:17

标签: java maven gradle spring-cloud-connectors

我在一个项目中使用 spring-cloud-cloudfoundry-connector-2.0.7.RELEASE.jar,该项目使用 com.fasterxml.jackson.core:jackson-databind:2.10.0 文件作为影子 JAR 构建(即文件包含在 spring-cloud-cloudfoundry-connector JAR 中,而不仅仅是一个依赖。

问题是,jackson-databind 2.10.0 现在存在已知的安全问题,但没有更新版本的 Spring 库带有修补的 Jackson 文件。所以,我需要做的是使用现有的 Spring 库,但使用较新的 Jackson 库。如果它是一个普通的依赖,它会很容易,但显然这些文件不能从 Spring 库中删除。

因此,有什么办法可以强制 Maven 忽略嵌入的 Jackson 类,而只使用较新的 Jackson 库(已包含在我的主项目中)。

可以在此处找到 Gradle 构建文件(以及 Spring 项目的其余部分):https://github.com/spring-cloud/spring-cloud-connectors/blob/master/spring-cloud-cloudfoundry-connector/build.gradle

1 个答案:

答案 0 :(得分:1)

您可以通过手动删除 jackson-databind 文件来构建您自己的 JAR 补丁版本。然后您可以使用新的版本号,例如 2.0.7.RELEASE-patched

将其放入您的 Nexus/Artifactory 或其他本地存储库。