gpt4 book ai didi

java - 是否有任何自动化方法可以使用 Gradle 更新和管理 Java/Scala 依赖项?

转载 作者:行者123 更新时间:2023-12-02 10:55:51 24 4
gpt4 key购买 nike

在花了一些时间研究 Nodejs 生态系统之后,我最近又回到了 Scala 项目的工作。在习惯了像npm这样的包管理器之后和yarn ,我觉得我需要重新考虑我一直在使用 Java/Scala 的工具/流程。考虑到这一点,JVM 世界中似乎存在几个问题,我想知道是否有一些自动化的解决方案:

  1. 给定一些没有版本(但带有组、模块)的依赖项列表,是否有某种自动方法来检测每个依赖项的版本的有效组合(如果存在)是什么?具体来说,确保不存在冲突的传递依赖关系?
    我相信 Java 模块应该可以减少/消除这个问题,但我目前仅限于 Java 8,因此无法使用它们。

  2. 除了手动更改我的 build.gradle 中的版本号之外,是否有任何自动方法可以从 cli 更新依赖项?
    例如,我可以这样做 yarn install <package>@<version>记录我所依赖的 Nodejs 库的新版本并一步安装它 - JVM 项目是否存在类似的东西?

  3. 有没有类似updtr的工具对于 Java/Scala 项目?基本上;一个工具,它将自动尝试更新我的依赖项并使用新版本运行测试,并在出现任何失败时回滚。

<小时/>

如果重要的话,我目前在 Scala 2.11 项目中使用 gradle 作为构建工具;但我很想知道适用于使用任何构建工具的任何混合语言项目的任何答案。最终,我只是想避免手动检查我的每个依赖项与其他所有依赖项 - 其他任何事情都是额外的好处。

最佳答案

我只能回答你的问题的第3点,甚至这个 - 也只能部分回答。

您可能对 Gradle Versions Plugin 感兴趣通过 Ben Manes .

此插件不会更新您的依赖项(因此它更具有测试运行+回滚功能)。

但是,它会列出所有可以升级的依赖项,如下所示(这只是可能的格式之一):

The following dependencies are using the latest integrationversion: - backport-util-concurrent:backport-util-concurrent:3.1 - backport-util-concurrent:backport-util-concurrent-java12:3.1The following dependencies exceed the version found at the integrationrevision level: - com.google.guava:guava [99.0-SNAPSHOT  3.0]     http://code.google.com/p/google-guice/ - com.google.inject.extensions:guice-multibindings [2.0 -> 3.0]     http://code.google.com/p/google-guice/Gradle updates: - Gradle: [4.6 -> 4.7 -> 4.8-rc-2]

Source: Report format

此外,该插件可以配置为被视为可升级版本:

boolean rejected = ['alpha', 'beta', 'rc', 'cr', 'm'].any { qualifier ->
selection.candidate.version ==~ /(?i).*[.-]${qualifier}[.\d-]*/
}

Source: Revisions

关于java - 是否有任何自动化方法可以使用 Gradle 更新和管理 Java/Scala 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51759784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com