[英]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.