我试过搜索但是我没有找到任何满意的答案,所以我发布了这个问题。如果你有一个可以详细解释这个问题的文档,请告诉我。
我的常春藤xml中有这一行:
<dependency org="org.apache.commons" name="commons-lang3" rev="3.3.2" transitive="false" />
我不明白这个传递领域是什么。我正在开发一个已经构建的项目,我不得不添加新的jar。所以我遵循了它已经存在的相同模式。 我尝试删除这个“传递”字段,我的项目中没有任何内容发生变化。然后我把它改成了真的。再一次,没有变化。这是用来做什么的? 这就是它为任何特定的jar下载所有3:source,javadoc和jar的原因吗?如果删除它不会影响我的项目,可以从我的常春藤xml中删除此字段吗?
apache网站说:“真实地解决了依赖性的传递,否则就是错误的”,这并不能解决我的怀疑。
答案 0 :(得分:2)
在干净的工作区中尝试(没有依赖关系)。
另外,commons-lang3
可能不是查看transtive
做什么的好例子,因为它本身并不依赖于任何其他库。
来自official document的Example
部分(突出显示我的):
<dependency org="foo" name="bar" revision="3.0" transitive="false" conf="default->@;runtime,test->runtime"/>
在版本3.0中声明foo对模块bar
的依赖关系。
由于bar
的设置,transitive
的依赖关系本身不会包含。
答案 1 :(得分:1)
set transitive =“true”以传递方式解析此依赖关系,否则返回false。
默认值为true。
<dependency org="org.hibernate" name="hibernate-core"
rev="3.3.1.GA" transitive="true" />
对于上面的依赖ivy下载所有依赖的“hibernate-core”jar作为传递设置为“true”。如果它是假的,常春藤不会下载这些依赖项。