如何在 gradle 中正确使用 `strictly`
How to correctly use `strictly` with gradle
在 gradle 6.7.1 中,我正在尝试使用 strictly
为传递依赖指定一系列版本。
在上面链接的文档中,它说
For example, [...] instead of strictly 1.0
, that it strictly depends on the [1.0, 2.0[
range, but prefers 1.0
.
我正在尝试建议的方法,我想在其中指定一个具有最低版本但没有最高版本的范围。我这样做如下:
def LIB_MIN_VERSION = '2.16.0'
testCompile('some-library') {
version {
strictly [LIB_MIN_VERSION,)
}
}
从the documentation on versioning开始,)
表示排他bound,缺少upper bound就没有upper bound
当我 运行 ./gradlew dependencies
时,我得到这个错误:
> startup failed:
build file '/home/shane/src/flink-svc/build.gradle': 119: expecting ']', found ')' @ line 119, column 33.
strictly [LIB_MIN_VERSION,)
^
如果我更改为 strictly [LIB_MIN_VERSION,]
并重新 运行,则会收到此错误:
> Could not get unknown property 'strictly' for of type org.gradle.api.internal.artifacts.dependencies.DefaultMutableVersionConstraint.
我的 gradle 版本可能不提供此范围功能吗?还是我犯了语法错误?
我尝试了@Slaw 的建议,将范围引用为 strictly '[LIB_MIN_VERSION,)'
。当我这样做时,我没有收到错误 运行ning ./gradlew dependencies
,但在输出中分辨率显示为失败:
some-library:{strictly [LIB_MIN_VERSION,)} FAILED
如果我在没有范围的情况下使用 strictly LIB_MIN_VERSION
(with 是不可取的),那么我不会得到 FAILED
:
some-library:{strictly 2.16.0} -> 2.16.0
如果我尝试将 Groovy 字符串插值与 strictly "[${LOG4J_LIB_VERSION},)"
:
一起使用,依赖项解析也会显示为 FAILED
some-library:{strictly [2.16.0,)} FAILED
问题(据我所知)是 Gradle 6.7.1 不支持此语法。一旦我升级到 7.0,它使用 Groovy 字符串插值工作,如下所示:
strictly "[${LOG4J_LIB_VERSION},)"
在 gradle 6.7.1 中,我正在尝试使用 strictly
为传递依赖指定一系列版本。
在上面链接的文档中,它说
For example, [...] instead of
strictly 1.0
, that it strictly depends on the[1.0, 2.0[
range, but prefers1.0
.
我正在尝试建议的方法,我想在其中指定一个具有最低版本但没有最高版本的范围。我这样做如下:
def LIB_MIN_VERSION = '2.16.0'
testCompile('some-library') {
version {
strictly [LIB_MIN_VERSION,)
}
}
从the documentation on versioning开始,)
表示排他bound,缺少upper bound就没有upper bound
当我 运行 ./gradlew dependencies
时,我得到这个错误:
> startup failed: build file '/home/shane/src/flink-svc/build.gradle': 119: expecting ']', found ')' @ line 119, column 33. strictly [LIB_MIN_VERSION,) ^
如果我更改为 strictly [LIB_MIN_VERSION,]
并重新 运行,则会收到此错误:
> Could not get unknown property 'strictly' for of type org.gradle.api.internal.artifacts.dependencies.DefaultMutableVersionConstraint.
我的 gradle 版本可能不提供此范围功能吗?还是我犯了语法错误?
我尝试了@Slaw 的建议,将范围引用为 strictly '[LIB_MIN_VERSION,)'
。当我这样做时,我没有收到错误 运行ning ./gradlew dependencies
,但在输出中分辨率显示为失败:
some-library:{strictly [LIB_MIN_VERSION,)} FAILED
如果我在没有范围的情况下使用 strictly LIB_MIN_VERSION
(with 是不可取的),那么我不会得到 FAILED
:
some-library:{strictly 2.16.0} -> 2.16.0
如果我尝试将 Groovy 字符串插值与 strictly "[${LOG4J_LIB_VERSION},)"
:
FAILED
some-library:{strictly [2.16.0,)} FAILED
问题(据我所知)是 Gradle 6.7.1 不支持此语法。一旦我升级到 7.0,它使用 Groovy 字符串插值工作,如下所示:
strictly "[${LOG4J_LIB_VERSION},)"