Gradle无法解析依赖项的版本

时间:2014-04-09 20:14:50

标签: java gradle pax-exam

我的项目取决于Pax考试框架。我在其中声明了这些对Pax的依赖(PAX_EXAM_VERSION = 3.4.0):

compile group: 'org.ops4j.pax.exam', name: 'pax-exam-junit4', version: PAX_EXAM_VERSION
compile group: 'org.ops4j.pax.exam', name: 'pax-exam-container-native', version: PAX_EXAM_VERSION

这两个都取决于org.ops4j.pax.exam:pax-exam-spi,这是导致我的问题的模块。

所以,当我尝试构建我的项目时,报告的错误就是这个:

Could not resolve org.ops4j.pax.exam:pax-exam-spi:3.4.0 ... Could not parse POM http://repo.maven.apache.org/maven2/org/ops4j/pax/exam/pax-exam-spi/3.4.0/pax-exam-spi-3.4.0.pom Unable to resolve version for dependency 'com.google.guava:guava:jar'

我试过了:

  • 从我依赖的模块的传递依赖项中排除pax-exam-spi(但请注意我仍然需要其中的类才能编译),将Guava添加到我的第一级依赖项中,然后尝试生成{ {1}}使用pax-exam-spi的第一级依赖关系(不起作用,与上述问题相同)。
  • 与上述相同,但不是transitive = false,而是尝试使用artifact-only notation,如下所示:

    编译“org.ops4j.pax.exam:pax-exam-spi:$ {PAX_EXAM_VERSION} @jar”

我知道问题的根源是guava版本没有在transitive = false中声明,而是在其父pax-exam-spi pom中声明,它只声明了2种不同的Guava版本profiles的dependencyManagement会话(这在Maven中有效,因为如果未设置属性exam,则激活其中一个配置文件,如果设置该属性,则激活另一个配置文件)。但是,到目前为止,知道这一点并没有用处:(

请告诉我是否有任何不那么糟糕的方法来确保Gradle在我的类路径中包含glassfish.release的jar,但是甚至没有尝试解析其POM(特别是指的是罐子的硬编码路径是不可能的!)。

0 个答案:

没有答案