当前位置: 首页 > 知识库问答 >
问题:

如何在Maven构建过程中排除shadowJar?

年良骏
2023-03-14

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

问题是,jackson-databind2.10.0现在已经存在已知的安全问题,但没有更新版本的spring库带有补丁的jackson文件。所以,我需要做的是使用现有的spring图书馆,但更新的jackson图书馆。如果它是一个正常的依赖关系,这将是足够容易的,但显然文件不能从spring库中删除。

因此,有什么方法可以迫使Maven忽略嵌入式的jackson类,而只使用较新的jackson库(它已经包含在我的主要项目中)。

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

共有1个答案

邢同
2023-03-14

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

将它放入您的Nexus/ArtiFactory中,或者放入本地存储库中。

 类似资料:
  • 在我的构建过程中(使用maven命令),我的maven编译器会自动下载依赖(repository/log4j/log4j/),但由于这有漏洞问题,我需要排除这个传递依赖下载。 这是我的POM(但实际上并不需要,因为空POM也会使用默认的mvn编译器下载它?)

  • 问题内容: 这就是我所需要的。其他详细信息:我有一个src / bootstrap / java文件夹和一个常规的src / main / java文件夹。出于明显的原因,每个人都需要进入一个单独的罐子。我能够使用以下命令生成一个引导罐: 但是常规jar仍包含bootstrap类。我正在用这个答案编译bootstrap类。 没有启动类的任何灯光来生成myproject.jar? 问题答案: 您必须

  • 问题内容: 我们需要能够在某些环境中跳过子模块。 有问题的模块包含集成测试,并且需要半小时才能运行。因此,我们希望在CI服务器上进行构建时将其包括在内,但是当开发人员在本地进行构建(并运行测试)时,我们希望跳过该模块。 有没有办法通过配置文件设置来做到这一点?我已经进行了一些谷歌搜索,并在这里查看了其他问题/答案,但没有找到一个好的解决方案。 我想一个选择是从父级中完全删除该子模块,然后在CI服务

  • 我的spring boot应用程序使用rpm-maven-plugin打包成rpm文件。我的目标是从rpm中排除application.properties。 rpm-maven-plugin configs 项目文件夹结构-src/main/资源/application.properties rpm文件中的文件夹结构 父文件夹- /var/demoapp /bin-包含jar文件 /conf-此

  • 依赖关系:树是: 有人能帮我解除对验证api: jar: 1.0.0. GA的依赖吗?它似乎在wc pom中作为传递依赖。谢谢

  • 我有一个构建项目,在其中我实现了Cucumber BDD,并编写了功能文件和测试类。现在,我想要的是在构建过程中