【问题标题】:How do I set an upper bound on Gradle dynamic versions?如何设置 Gradle 动态版本的上限?
【发布时间】:2014-06-05 21:29:27
【问题描述】:

我找不到任何关于 Gradle 动态版本语法的明确文档——official docs 中的示例是 1.+2.+,它们似乎都没有上限。

假设我的存储库中有1.0-SNAPSHOT2.0-SNAPSHOT,我希望某个项目能够引入第一个任何未来稳定的1.x,而不是第二个。

Maven syntax ([1.0,2.0)) 和 Ivy syntax ([1.0,2.0[) 我都试过了。这两个都拉入2.0-SNAPSHOT。为什么? 2.0-SNAPSHOT 是否被视为“小于”2.0

在这个假设下,我尝试了明显的 hack:[1.0,2.0-SNAPSHOT)[1.0,2.0-SNAPSHOT[,但它们都无法解决依赖关系。

如何告诉 Gradle 我只想要版本 1.x

【问题讨论】:

  • “1.+ 没有上限”是什么意思? 2.0 是一个上限,就像 2.0 一样。是的,2.0-something 被认为小于 2.0。
  • “1.+”如何表达上界“2.0”?
  • 我不明白这个问题。你的意思是最少上限吗?
  • “1+”不代表“>=1”吗?
  • 1.+ 表示“以1. 开头的最高版本”。

标签: gradle versioning dependency-management


【解决方案1】:

看起来答案是+ 包含一个隐式上限。所以1.+的意思是“任何以1.开头的版本”

这似乎不在 Gradle 文档中的任何地方,但它记录在 Ivy

  • 以 +
    结束修订 选择依赖模块的最新子版本。例如, 如果依赖模块存在于版本 1.0.3、1.0.7 和 1.1.2 中,“1.0.+”将选择 1.0.7。

【讨论】:

    猜你喜欢
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    相关资源
    最近更新 更多