簡體   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