使用Gradle是否有自动更新和管理Java/Scala依赖关系的方法?
在花了一段时间研究nodejs生态系统之后,我最近又回到了Scala项目上。在习惯了像使用Gradle是否有自动更新和管理Java/Scala依赖关系的方法?,java,scala,gradle,dependency-management,Java,Scala,Gradle,Dependency Management,在花了一段时间研究nodejs生态系统之后,我最近又回到了Scala项目上。在习惯了像npm和warn这样的包管理器之后,我觉得我需要重新思考我一直在使用的Java/Scala工具/流程。考虑到这一点,JVM世界中似乎存在几个问题,我想知道是否有一些自动化的解决方案: 给定一些没有版本的依赖项列表(但有组、模块),是否有一些自动方法来检测每个依赖项的有效版本组合(如果存在)是什么?具体而言,确保没有冲突的可传递依赖项? 我相信Java模块应该减少/消除这个问题,但我目前仅限于Java8,所以不能
npm
和warn
这样的包管理器之后,我觉得我需要重新思考我一直在使用的Java/Scala工具/流程。考虑到这一点,JVM世界中似乎存在几个问题,我想知道是否有一些自动化的解决方案:
我相信Java模块应该减少/消除这个问题,但我目前仅限于Java8,所以不能使用它们
build.gradle
中手动更改版本号外,是否有任何自动方法从cli更新依赖项?例如,我可以执行
warn install@
来记录我所依赖的nodejs库的新版本,并一步安装它-JVM项目中是否存在类似的情况如果有必要,我目前正在Scala 2.11项目中使用gradle作为构建工具;但我很想知道任何使用任何构建工具的混合语言项目的答案。最终,我只想避免手动检查我的每一个依赖项与其他依赖项之间的关系-其他任何东西都是非常精确的。我只能回答你问题的第3点,甚至这一点-只能部分回答 你可能会对我感兴趣 此插件不会更新您的依赖项(因此它更没有测试运行+回滚功能) 但是,它将列出所有可以升级的依赖项,如下所示(这只是可能的格式之一): 资料来源:
我只能回答你问题的第三点,甚至这一点也只能部分回答 你可能会对我感兴趣 此插件不会更新您的依赖项(因此它更没有测试运行+回滚功能) 但是,它将列出所有可以升级的依赖项,如下所示(这只是可能的格式之一): 资料来源:
这看起来很棒,谢谢!您知道这将如何报告具有冲突依赖项的依赖项更新吗?例如,
av1.1
依赖于bv1.1
,av1.2
(最新)依赖于bv1.2
,cv1.1
(最新)依赖于bv1.1
,cv1.1
:这个插件会支持吗?我在git回购协议中找不到任何关于这方面的信息。我理解你的意思——你希望在依赖项解析中保持最大的谨慎,而Gradle的默认策略是不那么谨慎,只选择最高的版本,这通常是有效的(这意味着C v1.1
在这种情况下将B v1.2
用作其依赖项)。我不认为这个插件有你要问的功能,但是Gradle本身可以配置为。希望能有所帮助,尽管我们离您要求的自动化越来越远;)这看起来很棒,谢谢!您知道这将如何报告具有冲突依赖项的依赖项更新吗?例如,av1.1
依赖于bv1.1
,av1.2
(最新)依赖于bv1.2
,cv1.1
(最新)依赖于bv1.1
,cv1.1
:这个插件会支持吗?我在git回购协议中找不到任何关于这方面的信息。我理解你的意思——你希望在依赖项解析中保持最大的谨慎,而Gradle的默认策略是不那么谨慎,只选择最高的版本,这通常是有效的(这意味着C v1.1
在这种情况下将B v1.2
用作其依赖项)。我不认为这个插件有你要问的功能,但是Gradle本身可以配置为。希望能有所帮助,尽管我们离您要求的自动化越来越远;)
The following dependencies are using the latest integration
version:
- backport-util-concurrent:backport-util-concurrent:3.1
- backport-util-concurrent:backport-util-concurrent-java12:3.1
The following dependencies exceed the version found at the integration
revision 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]
boolean rejected = ['alpha', 'beta', 'rc', 'cr', 'm'].any { qualifier ->
selection.candidate.version ==~ /(?i).*[.-]${qualifier}[.\d-]*/
}