如何在Gradle中获取已修补的.jar库的依赖项?

时间:2013-01-17 17:13:45

标签: gradle

我们正在使用Selenium的修补版本,我们希望使用我们的修补jar作为文件依赖,同时从Maven仓库获取Selenium的所有依赖项,而无需手动指定它们。这可能吗?

今天我们使用fileTree依赖项将修补后的selenium jar及其依赖项作为依赖项添加到我们的项目中,但这并不理想,因为它很丑陋,有时似乎搞乱了Gradle的冲突解决方案。

1 个答案:

答案 0 :(得分:1)

一般情况下,我建议将修补的Jar发布到您的公司Maven或Ivy存储库(Artifactory,Nexus等),以及合适的依赖描述符。当然还有其他解决方案,如下所示:

apply plugin: "java"

repositories {
    mavenCentral()
}

configurations {
    rawCompile
}

dependencies {
    rawCompile "junit:junit:4.11"
    compile configurations.rawCompile.filter { it.name != "junit-4.11.jar" }, files("lib/junit-4.11-patched.jar")
}

task debug << {
    println "original dependencies: $configurations.rawCompile.files \n"
    println "changed dependencies: $configurations.compile.files"
}

此解决方案和类似解决方案的潜在问题是文件依赖关系(这是您在compile上最终得到的)不参与冲突解决。