Gradle 5.6.4如何添加源码Jar作为项目依赖?
Gradle 5.6.4 分离引入第三方库源码并保留调试信息的方案
Gradle完全支持你的需求,以下是三种实用方案,按推荐程度排序:
1. 独立子模块引入(最推荐,彻底分离代码)
把库的源码做成项目的子模块,既保持代码独立,又能完整保留调试信息:
- 将库的源码放在项目根目录的独立文件夹,比如
mylibrary - 在根目录的
settings.gradle中添加:include ':mylibrary' - 在主项目的
build.gradle的依赖块中添加:dependencies { implementation project(':mylibrary') } - 给
mylibrary文件夹添加基础的build.gradle配置:plugins { id 'java' } sourceCompatibility = 1.8 // 根据你的项目JDK版本调整 targetCompatibility = 1.8
这样编译时会自动处理子模块的源码,调试时能直接看到库的注释、变量名,代码完全和自有项目分离。
2. 配置额外源码目录(轻量方案)
如果不想创建子模块,可以直接让Gradle把独立目录的源码当成项目源码的一部分编译:
- 将库的源码放在项目内的独立目录,比如
src/mylibrary/java - 在主项目的
build.gradle中修改sourceSets:sourceSets { main { java { srcDirs 'src/main/java', 'src/mylibrary/java' } } }
这种方式不需要复制代码到src/main/java,物理上保持分离,编译和调试时都能完整获取源码信息。
3. 生成带调试信息的Jar(兼容Jar依赖场景)
如果必须用Jar依赖的方式,可以编译时保留调试信息:
- 在库的编译脚本中开启调试参数,确保生成的Jar包含源码、行号、变量名信息:
tasks.withType(JavaCompile) { options.debug = true options.debugOptions.debugLevel = "source,lines,vars" }
编译生成Jar后,用你原来的方式引入主项目,调试时IDE会自动识别Jar中的调试信息,也可以额外生成库的sources Jar一起引入,确保注释能正常显示。
内容的提问来源于stack exchange,提问作者Fizz Areh
相关产品推荐
相关产品推荐

