我在受限环境中有一个旧项目。我们发现了第三方OSS库的问题,已对其进行分叉并修复。但是,该另一种工具期望工件的路径已经精确编码(因为它已被硬编码到工件中)(它还期望它作为依赖项位于类路径上)。因此,dependencies
看起来像这样:
dependencies {
compile group: 'org.foo', name: 'bar', version: '1.2.3', configuration: 'runtime'
}
org.foo:bar:1.2.3
是我们需要修补的工件。
是否有可能在保持其工件坐标不变的情况下覆盖此依赖关系,但向其添加类似files
的内容?如果是这样,怎么办?可以使用模块替换来完成吗?
我们使用的是Gradle的旧版本-4.10.x。
答案 0 :(得分:3)
将修补程序贡献给OSS库是您的最终目标,但您可以通过以下方式解决此问题:
m
,<root>/org/foo/bar/1.2.3/bar-1.2.3.jar
下的本地存储库中。
在构建中的其他存储库之前 定义此存储库
<root>/org/foo/bar/1.2.3/bar-1.2.3.pom
repositories {
maven {
name = "localRepo"
url = "<root>"
}
// Other repositories below
}
才能使Gradle注意到更改的依赖性。注意:在旧版/受限环境之外,我不建议这样做。您实际上在给定上下文中遮盖了工件,从而使构建变得脆弱。