ivy xml 的依赖标签中的传递字段有什么用?

What is the use of transitive field in ivy xml's dependency tag?

我已经尝试搜索它,但没有找到满意的答案,所以我发布了这个问题。如果您有文档可以详细解释这一点,请告诉我。

我的常春藤里有这行xml:

<dependency org="org.apache.commons" name="commons-lang3" rev="3.3.2" transitive="false" />

我不明白这个传递域是干什么用的。我正在处理一个已经构建的项目,我必须添加新的 jar。所以我遵循了它已经存在的相同模式。 我尝试删除此 "transitive" 字段,但我的项目中没有任何更改。然后我将其更改为true。同样,没有变化。这是做什么用的? 这就是它下载所有 3 的原因:源代码、javadoc 和 jar 用于任何特定的 jar 吗?如果删除它不影响我的项目,是否可以从我的常春藤中删除此字段xml?

apache 网站说:"true to resolve dependencies transitively, false otherwise" 这并不能消除我的疑虑。

在干净的工作区中尝试它(还没有依赖项)。 此外,commons-lang3 可能不是了解 transtive 功能的好例子,因为它本身不依赖于任何其他库。


来自 official documentExample 部分(突出显示我的):

<dependency org="foo" name="bar" revision="3.0" transitive="false" conf="default->@;runtime,test->runtime"/> 

声明对来自 foo 的模块 bar 的依赖,修订版 3.0。

由于 transitive.

的设置,bar 的依赖本身将不会被包含

set transitive="true" 以传递地解决此依赖关系,否则为 false。 默认值为真。 <dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" transitive="true" /> 对于上述依赖,ivy 下载 "hibernate-core" 的所有依赖 jar,因为传递设置为 "true"。如果为 false,ivy 不会下载这些依赖项。