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

在执行distZip Gradle任务时防止jar重复

陆才俊
2023-03-14

我有一个Gradle项目,它有来自不同存储库的大量依赖项(mavenCentraljcenter)。在成功执行distZip任务并检查zip存档后,我发现在lib文件夹中复制了某些JAR:

  1. bcprov-jdk14-1.38。jar和bcprov-jdk14-138。罐子
  2. bcmail-jdk14-1.38。jar和bcmail-jdk14-138。罐子

Jar元组具有相同的大小和内容。我想这是因为在不同的存储库中,这些依赖项具有不同的文件名。当执行distizip任务时,如何防止zip文件中的Jars重复?它是否是distizip任务的默认功能或要启用的某个选项?

作为一种变通方法,我相信我可以编写某种distizip任务处理程序和挤压依赖关系jar元组(可能有两个,三个和更多的副本),只留下一个使用一些Groovy脚本,但我想知道这是一个默认的解决方案吗?

共有1个答案

晁绍辉
2023-03-14

正如https://stackoverflow.com/a/21315957/1828296中所述,我发现了对Bouncy城堡库具有传递依赖的依赖-它是com.lowagie: itext-通过发布gradle依赖并通过1.38138值进行搜索。

然后我对这种依赖做了如下排除:

编译('com.lowagie: itext2.1.7'){排除组:"bouncyCastle"}

添加了最新的Bouncy Castle版本:

compile'org。bouncycastle:bcprov-jdk15on:1.54“编译”组织。bouncycastle:bcmail-jdk15on:1.54“编译”组织。bouncycastle:bctsp-jdk15on:1.46'distZip之后,没有旧版本或双罐,只有现代版本。

 类似资料:
  • 我有一个文件,看起来像这样 wsimport任务从wsdl文件生成所需的一些java文件。生成需要一些时间,所以我不希望每次构建jar或编译程序时都执行它。 wsclean任务旨在当wsdl发生更改时使用。 首先,我运行wsimport任务并确认文件生成正确,它们就是! 但是现在,当我运行gradle jar时,生成的文件被删除了。为什么? 当我注释掉wsclean任务时,jar任务成功地继续。为

  • 问题内容: 我正在为我的学校创建一个应用程序,该应用程序应每n分钟检查一次网站上是否有新标记。为此,当用户首次登录时,实际标记的编号将保存在“ UserDefaults”中。当应用终止时,n分钟后,将重新计算标记的数量,并将其与前一个标记进行比较,并在更改数量时发送通知。 我想知道是否有一种方法可以执行此任务。我尝试在-applicationWillTerminate-中创建一个计时器,但只触发了

  • 原文链接:Serverless 应用开发指南:CRON 定时执行 Lambda 任务 在上一篇文章《Serverless 应用开发指南:基于 Serverless 的 GitHub Webhook》里,我们介绍了如何用 Webhook 来触发定时的 Lambda 函数。这种方式与我们平时的 CI(持续集成)服务器相似,而CI(持续集成)服务器除了会监听 PUSH 事件。还会执行一些定时的任务,比如

  • 我正在从事一个spring boot项目,以自动化与gradle的集成测试。我最近开始在一家新企业工作,我的同事们按如下方式运行集成测试:在构建中。gradle文件有一个集成测试任务 启动任务后,应用程序开始在指定端口运行,然后打开postman,导入集合并运行测试。 我的工作是找到一种方法来跳过额外的点击,即自动运行邮递员集合。第一个想法是使用postman-run gradle插件,但由于企业

  • 问题内容: 我不想拥有用户或位置,因为我可以有多行用户包含相同数据,或者有多行位置包含相同数据。我只想避免用户和位置都具有一定的价值,因为该行重复了许多次。 例如:这还可以 但这不行: 因为已经存在其中user = 1和location = 2的行。 如何避免重复? 问题答案: 声明对(用户,位置)的唯一约束。

  • 问题内容: 我想每隔5秒重复调用一次方法,每当我希望停止该方法的重复调用时,我可能会停止或重新启动该方法的重复调用。 这是一些我真正想要实现的示例代码。在这方面请帮助我,我将非常感谢您。 问题答案: 使用以下命令设置重复任务: 如果您想取消任务,只需调用这里就是您的对象 并且您还可以检查答案下方的评论,他们已经提供了有关此内容的简短信息。