如何替换Gradle axion-release插件的com.jcraft:jsch传递依赖?
替换axion-release插件的jsch依赖方案
要替换axion-release插件依赖的停止维护的com.jcraft:jsch为com.github.mwiede:jsch,核心是利用Gradle的**依赖替换(Dependency Substitution)**机制——两者是同Java包名的即插即用分支,直接替换模块即可,以下是可行配置:
buildscript { dependencies { classpath 'pl.allegro.tech.build:axion-release-plugin:1.14.2' } configurations.classpath { resolutionStrategy { dependencySubstitution { // 将原模块替换为维护版本 substitute module('com.jcraft:jsch') using module('com.github.mwiede:jsch:0.2.4') } } } }
为什么之前的配置无效?
- 第一种配置用
force仅能强制同一group下的版本,无法跨group替换模块,因此不生效 - 第二种配置只排除了原依赖,但未主动关联替代库,导致缺失依赖
- 第三种配置排除后手动添加新依赖,但Gradle不会自动将插件对
com.jcraft:jsch的引用映射到com.github.mwiede:jsch,必须通过dependencySubstitution明确替换
验证替换结果
执行以下命令查看构建脚本的依赖树,确认com.github.mwiede:jsch已替代原依赖:
gradle buildEnvironment
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

