1

我正在尝试为 Eclipse (Java) 编写插件。

如果源代码有更改(例如错误修复),插件应该知道 eclipse-Project 的哪些文件被更改(以便运行受影响的 JUnit-Tests)。我计划通过 SVN 同步状态来实现这一点。

因此,如果文件与存储库中的“相同”文件不同(传出更改),我知道该文件已被编辑(当然)。

我知道我可以使用 org.eclipse.team.* 包/库。

我还发现我可以使用这个包的“SyncInfo”。

但我真的不知道如何实现这一点。

我想我必须定义一个“IResource”或“IProject”来为我的插件提供我想要测试的 eclipse-project 信息。

我无法在互联网上找到很多有用的信息。

4

2 回答 2

0

你没有定义IResourceor IProject。相反,您应该使用Workbench该类来获得一个:

 IWorkspace workspace = ResourcesPlugin.getWorkspace();
 IProject project = workspace.getRoot().getProject(...);
 IJavaProject javaProject = JavaCore.create(project);

现在您可以遍历链接到项目的所有资源。

也就是说,最好实现IncrementalProjectBuilder并让 Eclipse 告诉您发生了什么变化,这样您就可以简单地为这些元素运行单元测试。这应该让您开始使用增量构建器:Eclipse 帮助:增量项目构建器

这样,您根本不必处理颠覆;对项目的任何更改,无论是谁造成的,都会触发您的构建器,然后它可以决定如何处理修改。

一个好的方法可能是收集测试以在队列中运行,并让后台工作人员处理此队列。

于 2013-07-15T14:31:43.413 回答
0

我一直在寻找这个 1 个月了。我尝试为 Eclipse 编写一个插件,该插件能够读取项目的变更集(存储库的“工作副本”)。

我现在所做的是一个丑陋的解决方法。

我使用 Runtime.exec() 运行 cmd-command / Shell- 命令。如果你安装了一个 svn-commandline 客户端,你可以输入 svn status -v -u 它给你一个包含变更集信息的工作副本的所有文件的列表。

比您可以解析列表以找到所有以“M”开头的行 - 用于“修改”以获取更改文件的路径。

于 2013-08-22T11:25:46.120 回答