如何在Eclipse中构建JGit(依赖项错误)

时间:2013-01-30 17:41:08

标签: eclipse jgit

我正在尝试构建最新版本的JGit。我从Git存储库中查看了最新版本。根据{{​​3}},我通过Orbit安装了build instructions。然后我运行了mvn clean install,它能够编译所有内容并运行所有测试。所以这很好,没有错误,我可以找到已编译的.jar文件。

然后我打开Eclipse并将项目导入到工作集中。出于某种原因,构建过程中存在许多错误。

导入无法解决:

import org.apache.commons.compress.archivers.ArchiveOutputStream;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
import org.apache.commons.compress.archivers.tar.TarConstants;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;

还有更多问题无法解决:

import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Response;

我尝试通过Eclipse安装Jetty(安装新软件)。但是,这并未解决问题。

我是不是应该在Eclipse中构建JGit?所有构建和测试都应该使用Maven完成?我也很困惑为什么在JGit的一些子项目中导入了Jetty和Apache,并且它们没有在维基上列为JGit的依赖项。

提前致谢。

2 个答案:

答案 0 :(得分:1)

Jetty和Compress库是JGit基础设施的一部分,但Eclipse中的EGit支持并不需要JGit所拥有的所有内容。

例如,JGit还提供了一系列未在Eclipse中使用的命令行程序(jgit init,jgit add等)。所以你需要从MAven构建'pgm'模块,但这本身并没有被EGit使用,它是Eclipse中的UI。同样,JGit HTTP服务器很有用,但对于EGit操作不是必需的。

我相信这些归档程序用于通过pgm模块为'jgit archive'提取工具,它可以提取分支的内容并动态生成Zip或TGZ文件。

如果您不想(或不需要)pgm模块(我建议也可能也避免使用iplog),那么您可以从pom.xml文件中的模块列表中取消注释。删除http.server(和http.test)以及pgm模块可能允许您编译而无需Jetty和Apache压缩模块。

答案 1 :(得分:1)

安装依赖项的最简单方法是使用其中一个目标平台,如Use a Target Platform中所述。它包括所有依赖项。

至于从Orbit P2存储库安装,那里的列表不完整。您还需要安装“Apache Commons Compress”,请参阅更新说明:

http://wiki.eclipse.org/EGit/Contributor_Guide#Option_2:_Install_from_Orbit_P2_Repository

无法从Orbit安装Jetty,请参阅此处获取说明:

http://wiki.eclipse.org/EGit/Contributor_Guide#JGit_HTTP_Tests

或者再次使用包含Jetty的目标平台。