繁体   English   中英

常春藤依赖conf映射通配符

[英]Ivy dependency conf map wildcard

在常春藤依赖中,

Q1。 有什么区别

CONF = “runtime->编译”

VS

CONF = “runtime->编译(*)”

额外的括号内的通配符有什么作用?

Q2。

以下是做什么的?

CONF = “编译期>编译(*)”

这不是周期性/自我依赖吗? 将conf映射回自身有什么意义?

括号是后备

从1.3开始,当您不确定依赖项是否具有所需的conf时,可以使用回退机制。 您可以向常春藤指出您想要一个配置,但如果它不存在,请使用另一个配置。 指定此语法的语法会在所需的conf之后添加后缀括号。 例如,

test->runtime(default)
意味着在模块的test配置中
runtime
需要conf的conf,但如果不存在,它将使用
default
相反。 如果默认conf不存在,那么它将被视为错误。 请注意,*通配符可用作后备conf。

问题2:conf总是如下:

ConfFromThisFile -> ConfFromDependency

所以

compile->compile

会在地图compile依赖的配置在compile这个文件的配置。 这不是循环。 括号说:如果依赖项中不存在compile ,则使用*

有关依赖项,请参阅常春藤文档的配置映射部分。

此语法用于依赖性回退。 runtime->compile意味着运行时配置依赖于编译配置。 编译配置必须存在或Ivy将报告错误。 但是, runtime->compile(*)将首先尝试编译配置以满足依赖性。 但是如果编译不存在,它将尝试所有其他配置。 有关详细信息,请参阅常春藤文档的配置映射部分。

基于此, compile->compile(*)将指示编译需要任何(所有?)配置。 我猜测compile->(*)是无效的语法,因此额外的compile保证使用回退,因为直到配置XML节完成之后才定义compile

请注意,文档中不清楚if (*)表示“任何”或“所有”配置。 所以,我不确定Ivy是否会停止匹配所有依赖项的第一个配置(如果有的话),或者它是否会引入union中的所有其他配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM