Gradle不包含可选依赖项

8

我有一个项目,它在编译时依赖了 apache-compress 库。这个库似乎使用了 Maven,并且在 POM 文件中将一个依赖设置为“可选”。以下是 POM 文件的相关部分:

<dependency>
  <groupId>org.tukaani</groupId>
  <artifactId>xz</artifactId>
  <version>1.5</version>
  <optional>true</optional>
</dependency>

Gradle似乎没有将这个库包含到我的项目中,我猜测这是因为"optional"属性。有没有一种方法可以告诉Gradle在不显式包含xz库的情况下包含它作为依赖项?

这是我的Gradle依赖声明:compile group: 'org.apache.commons',name:'commons-compress',version:'1.8.1'


1
使用Ivy与相同的依赖项,似乎Ivy默认包含可选依赖项,或者可能完全忽略了该设置。 - jjathman
1个回答

11

可选依赖项不会被考虑在传递依赖项的解析中,如果需要必须显式地添加。(Maven 中也是这样。)


2
感谢您提供的明确答案。有没有办法告诉gradle去包含在commons-compress POM中定义的xz库版本,而不是显式地定义某个版本? - jjathman
7
没有(尽管我认为这会很有用)。 - Peter Niederwieser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接