我们正在使用 Selenium 的补丁版本,我们希望使用我们的补丁 jar 作为文件依赖项,同时从 Maven 存储库获取 Selenium 的所有依赖项,而无需手动指定它们。这可能吗?
今天,我们使用 fileTree 依赖项将修补后的 selenium jar 及其依赖项作为依赖项添加到我们的项目中,但这并不理想,因为它很丑陋,而且有时似乎会打乱 Gradle 的冲突解决方案。
我们正在使用 Selenium 的补丁版本,我们希望使用我们的补丁 jar 作为文件依赖项,同时从 Maven 存储库获取 Selenium 的所有依赖项,而无需手动指定它们。这可能吗?
今天,我们使用 fileTree 依赖项将修补后的 selenium jar 及其依赖项作为依赖项添加到我们的项目中,但这并不理想,因为它很丑陋,而且有时似乎会打乱 Gradle 的冲突解决方案。
一般来说,我建议将修补后的 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"
}
这个和类似解决方案的一个潜在问题是文件依赖项(这是您最终得到的 on compile
)不参与冲突解决。