Eclipse & Grade 如何生成 jar 以便调试器可以访问源代码?

Posted

技术标签:

【中文标题】Eclipse & Grade 如何生成 jar 以便调试器可以访问源代码?【英文标题】:Eclipse & Grade how to generate jar so that debugger can access the source code? 【发布时间】:2021-10-14 00:46:08 【问题描述】:

我正在使用带有 Gradle 插件的 Eclipse 4.20.0。 (Gradle 版本 6.6) 我创建了一个罐子。 我创建了另一个引用这个 jar 的项目。 我想调试最后一个项目,但是当调用jar中的一个类时,Eclipse显示扩展名为“.class”的文件,但找不到扩展名为“.java”的源文件并显示“找不到源”“的此类文件的 JAR 属于容器“项目和外部依赖项”,该容器不允许修改其条目上的源附件”

创建 jar 的项目的 build.gradle 文件是:

plugins 
  id 'java-library'


repositories 
  jcenter()
  mavenCentral()


java 
  withSourcesJar() //For including the sources??


// My customization
project.jar.destinationDirectory = file("$rootDir/../mytargets")  //Save jars in the same folder
project.archivesBaseName = 'a-annotations' //Set the name of the jar file
project.version = '1.0'

dependencies 
  testImplementation 'junit:junit:4.13'

使用这个jar的项目的build.gradle是

plugins 
  id 'java-library'
  id 'java-library-distribution'


repositories 
  jcenter()
  mavenCentral()


java 
  withSourcesJar() //For including the sources??


// My customization 
project.jar.destinationDirectory = file("$rootDir/../mytargets")  //Save jars in the same folder
project.archivesBaseName = 'p-if07-run' 
project.version = '1.0'
 
dependencies 
  // Use JUnit test framework.
  testImplementation 'junit:junit:4.13'
  api files('../mytargets/a-annotations-1.0.jar')  // The jar !!!! 


// Collect all the dependencies into the folder "lib"
jar 
  manifest 
    attributes(
      'Main-Class': 'Execute',
      'Class-Path': configurations.runtimeClasspath.files.collect  'lib/'+it.getName() .join(' ')
    ) 
  

【问题讨论】:

【参考方案1】:

最后,用这个替换build.gradle文件的jar部分,解决了我的问题

jar    
    from sourceSets.main.allSource  //Include java sources

【讨论】:

以上是关于Eclipse & Grade 如何生成 jar 以便调试器可以访问源代码?的主要内容,如果未能解决你的问题,请参考以下文章

作业二

第二次作业

第二次作业

eclipse&myeclipse 生成jar包后,spring无法扫描到bean定义

Grade的安装

if条件判断示例