Eclipse搭配Gradle如何生成调试时可关联源码的jar包
问题解决:Eclipse Gradle项目引用本地Jar无法关联源码问题
根因说明
- 生成Jar的项目中,
withSourcesJar()配置仅会单独生成源码Jar包,不会把源码合并到主Jar中,你当前仅将主Jar输出到了../mytargets目录,源码Jar未同步输出 - 引用项目使用
files()直接依赖本地Jar的方式,Gradle无法自动识别同目录下的源码Jar,且Eclipse默认禁止修改Gradle依赖容器的源码附件配置,因此出现对应的报错。
解决方案
方案1:调整配置实现源码自动关联(推荐,无需手动附加源码)
- 修改生成Jar的项目(a-annotations)的
build.gradle,添加源码Jar的输出目录配置:
// 追加到原配置末尾即可 tasks.named('sourcesJar') { destinationDirectory = file("$rootDir/../mytargets") }
执行build任务后,../mytargets目录下会同时生成a-annotations-1.0.jar(主Jar)和a-annotations-1.0-sources.jar(源码Jar)。
- 修改引用项目的
build.gradle配置:
首先在repositories块中添加本地Jar目录作为flat仓库:
repositories { jcenter() mavenCentral() // 新增以下配置 flatDir { dirs '../mytargets' } }
修改依赖声明,替换原来的api files('../mytargets/a-annotations-1.0.jar'):
dependencies { // 其他依赖不变 api 'a-annotations:a-annotations:1.0' }
- 右键引用项目 -> 选择
Gradle->Refresh Gradle Project,刷新后调试即可自动识别源码。
方案2:无需修改依赖配置,手动放开Eclipse源码附加限制
如果你不想调整现有依赖逻辑,可通过以下方式手动附加源码:
- 右键引用项目 -> 选择
Properties-> 找到Gradle设置页 - 取消
Classpath分组下的Disable source attachment for JARs and classes folders from Gradle containers勾选 - 点击
Apply and Close后刷新Gradle项目 - 再次点击报错页的
Attach Source按钮,选择../mytargets目录下的a-annotations-1.0-sources.jar即可。
内容的提问来源于stack exchange,提问作者Ximo Dante
相关产品推荐
相关产品推荐

