“可以”;附上来源“;让流行的Java库变得更容易?

“可以”;附上来源“;让流行的Java库变得更容易?,java,debugging,ide,maven-2,Java,Debugging,Ide,Maven 2,当我的调试器进入某个类文件时,我遇到了这个障碍 没有相应的来源。找到它通常很困难: 您必须搜索承载相应项目的站点, 并找到它的“下载源”页面(例如,上次我搜索时) 对于JPAAPI,我花了几个小时才获得源代码)。或者,你可以 被要求从版本控制中检出 您需要知道您正在使用的确切版本。否则 调试器可能会进入注释和空行:) 对于一些源代码的打包没有约定 项目包括它在jar本身中;有些提供单独的zip文件; 其他人把它放在zip中的src/子文件夹中 我知道Maven有从其存储库下载源代码的能力 生

当我的调试器进入某个类文件时,我遇到了这个障碍 没有相应的来源。找到它通常很困难:

  • 您必须搜索承载相应项目的站点, 并找到它的“下载源”页面(例如,上次我搜索时) 对于JPAAPI,我花了几个小时才获得源代码)。或者,你可以 被要求从版本控制中检出

  • 您需要知道您正在使用的确切版本。否则 调试器可能会进入注释和空行:)

  • 对于一些源代码的打包没有约定 项目包括它在jar本身中;有些提供单独的zip文件; 其他人把它放在zip中的
    src/
    子文件夹中

我知道Maven有从其存储库下载源代码的能力 生成IDE配置文件时,将其包含在src路径中。但是 Maven的回购协议在LIB实际拥有的内容方面非常糟糕 他们的来源上传了

既然可以直截了当,为什么会这么复杂?我们本来可以 将类文件(或其散列)与源文件关联的一些中央回购协议 编译它的源文件(或指向它的链接)。也许是一笔相当大的回购,但是 结构非常简单。IDE插件可以查询它以自动获取所需内容

伙计们,你们也有过同样的经历吗


如何获取要附加的源文件?

这可能很复杂,但值得一试

我是这样做的: 在我的项目目录中,我有三个主要目录

  • src(我自己的)
  • 解放党
  • suppl(不存在源代码时的源代码/javadocs)
我在suppl中为每个库放了一个zip文件,其中包含源代码。在intellij中,这不仅给了我调试器的超级能力,还给了我javadocs

你说得对,获取信息来源是件痛苦的事。有时源代码以lib的.jar文件的形式提供,有时作为单独的下载(我的最爱),有时我必须创建一个单独的cvs/svn目录,在那里我可以签出源代码。我通常需要按照我喜欢的方式重新包装它们,即使是用拉链包装


我对马文持怀疑态度。我只是不喜欢把我选择LIB的决定交给一个程序。

我们做了一些类似于Andreas的事情。我们的lib目录有进一步分类的子目录。一个这样的子目录是source或debug,它具有我们想要调试的所有JAR的源JAR/zip。只要做一次就好了。我们使用常春藤存储库来存储罐子和源罐子。

我自己还没有看到令人满意的解决方案

我倾向于在没有Maven的情况下推出自己的回购协议(Maven很好,但它不适合我)。我运行类似于BSD端口系统的东西,即一个包含少量Ant构建文件的大型结构化树。这些构建文件要么签出项目的源代码,从树中的其他地方提取其依赖项并构建它(这些文件用于我要构建的项目,即我的项目),要么从其他地方提取二进制文件(可能是外部源代码或我自己的二进制文件存储库)


该系统可以很容易地扩展到拉src jar,但我现在手动完成了。

如果使用M2eclipse(),这一切都是自动完成的

和IDEA都将下载任何依赖项的源代码和javadocs。可以通过右键单击依赖项(或者整个项目,如果需要所有源代码)并单击Maven->Download sources来下载m2eclipse源代码

在较新版本的m2eclipse上,您还可以通过转到窗口->首选项…->Maven,然后选择“下载工件源”选项来自动下载源代码。当您在依赖项jar中打开当前没有可用源的类型时,Maven将在后台下载源并在后台更新源附件