当我的调试器进入某个类文件时,我遇到了这个障碍 没有相应的来源。找到它通常很困难:
您必须搜索托管相应项目的网站, 并找到它的“下载源”页面(例如,我上次搜索时 对于JPA API,我花了几个小时来获取源代码)。或者,你可以 需要从修订控制中查看。
您需要知道您使用的确切版本。除此以外 调试器可能会进入注释和空行:)
包装源代码没有惯例 - 一些
项目包括在罐子里;一些提供单独的zip文件;
其他人把它放在zip中的src/
子文件夹中。
我知道Maven有能力从其存储库下载源代码 生成IDE配置文件时将其包含在src路径中。但 Maven的回购在内容方面很差 - 实际上很少有lib 他们的来源上传了。
为什么它可以直截了当地变得如此复杂?我们可以有 一些中央仓库,它将类文件(或其散列)与源相关联 它是从(或它的链接)编译的文件。也许是一个相当庞大的回购,但是 非常简单的结构。 IDE插件可以查询它以自动获取所需内容。
你们,伙计们,经历过同样的经历吗?
如何获得要附加的来源?
答案 0 :(得分:2)
m2eclipse和IDEA都将为任何依赖项下载源代码和javadoc。可以通过右键单击依赖项(或整个项目,如果您需要所有源)并单击Maven-> Download Sources来下载m2eclipse源。
在较新版本的m2eclipse上,你也可以通过转到Window-> Preferences ...-> Maven,然后选择“Download Artifact Sources”选项自动下载源代码。当您在依赖关系jar中打开一个当前没有可用资源的类型时,Maven将在后台下载源代码并在后台更新源代码附件。
答案 1 :(得分:1)
我自己没有看到满意的解决方案。
我倾向于推出自己的回购,没有Maven(Maven很好,但它没有点击我)。我运行类似于BSD端口系统的东西,即一个包含很少Ant构建文件的大型结构化树。这些构建文件要么检查项目的源,从树中的其他地方提取它的依赖项并构建它(这些是我想要构建的项目 - 即我的)或从其他地方(可能是外部的)拉取二进制文件source或我自己的二进制文件库)。
系统可以很容易地扩展到拉src jar,但我现在手动执行。
答案 2 :(得分:0)
它可能很复杂,但最初的努力是值得的。
我按照以下方式进行: 在我的项目目录中,我有三个主要目录,
我为每个库提供一个zip文件,包含源代码。在intellij中,这不仅给了我调试器超级大国,还给了我javadocs。
你是对的,获得消息来源是一种痛苦。有时候来源是在lib的.jar文件中提供的,有时作为单独的下载(我最喜欢的),有时候我必须创建一个单独的cvs / svn目录,我可以在那里查看源代码。我通常需要按照我喜欢的方式重新包装它们,即使是以拉链形式提供。
我对maven持怀疑态度。我只是不喜欢将有关选择libs的决定移交给程序。
答案 3 :(得分:0)
我们做类似于安德烈亚斯的事情。我们的lib目录有子目录进一步分类。一个这样的子目录是源或调试,它具有我们想要调试的所有jar的源JAR / ZIP。做一次,你很好。我们为罐子和源罐使用IVY存储库。
答案 4 :(得分:0)
如果你使用M2eclipse(http://m2eclipse.sonatype.org),这一切都会自动完成。