2009-10-11 74 views
0

由于对eclipse基础架构的理解不完整,我有一个问题。历史上我们在构建过程中有一件丑陋的事情。它看起来像下面这样:
在eclipse构建完整的工作空间后,在本地构建插件中有一件不完整的事情。它是当前在执行特殊插件测试期间构建的一些数据文件(实际上什么都不做测试,但是生成必要的数据)。在工作区中进行任何更改后,没有必要执行该测试。实际上,只有在很少触及的代码部分发生变化后才需要。但是,如果对该代码部分进行了更改,那么在更新该特殊数据文件之前,构建变得不可用。该文件现在存储在CVS上,因为它现在只能在本地创建,但在产品构建中是必需的。
我想以这种方式更改构建过程,以便在工作区构建过程中执行此插件测试,因此不需要手动运行它。我试过编写ant文件,它将使用org.eclipse.test/library.xml中的模板运行该测试,但该插件未加载。我不知道为什么会发生这种情况,但我担心这可能是由于我的日食工作副本中缺少测试插件而发生的。
我已经阅读了一些关于在批处理模式下运行插件测试的文章,但它们只是增强了我对于测试开发插件的单独eclipse副本必要性的感觉。
我们使用ant进行插件构建,这些脚本的整个结构非常复杂,所以我认为在顶层构建过程中进行全局更改是不可能的。我必须完成我的任务有哪些选项?也许有人已经有过类似的经验...Eclipse:如何运行插件测试作为本地构建的一部分

请注意,实际上我想摆脱那个测试,赞成一些特殊的日食应用程序,但我认为这不是重要的现在,因为我相信我的问题可能比运行插件测试更普遍。

回答

0

这是应该如何脚本ANT样子:

<!-- Prepare extension --> 
    <mkdir dir="${extension_dir}/eclipse"/> 
    <antcall target="make_symlink"> 
    <param name="target" value="${workspace_loc}"/> 
    <param name="source" value="${symlink_location}"/> 
    </antcall> 

    <!-- Install extension --> 
    <mkdir dir="${eclipse-home}/links"/> 
    <echo file="${link_file}">path=${extension_dir}</echo> 

    <!-- Run test --> 
    <antcall target="core-test"> 
    <param name="plugin-name" value="testsPlugin"/> 
    <param name="classname" value="testsPlugin.TestsClass"/> 
    <param name="data-dir" value="${workspace_loc}/../some_workspace"/> 
    <param name="plugin-path" value="${workspace_loc}"/> 
    </antcall> 

    <!-- Uninstall extension --> 
    <delete file="${link_file}"/> 

    <!-- Delete extension --> 
    <antcall target="delete_symlink"> 
    <param name="source" value="${symlink_location}"/> 
    </antcall> 
    <delete dir="${extension_dir}"/> 

此脚本应通过“eclipse-home”,“os”,“ws”,“arch”参数设置参数。首先是从属eclipse实例的路径,后三个是用于匹配运行平台的属性。在本地构建中,它们可以分别具有osgi.os,ogsi.ws和osgi.arch的值。

0

我的猜测是,你有一些源文件,当改变时强制重建数据文件。重建有点慢,所以你不想一直这么做。

我会这样攻击:移动数据文件依赖的所有代码到一个项目中。编写一个构建数据文件的ANT脚本。将该ANT脚本添加为项目的自定义构建器(打开项目属性,然后单击“构建器”),然后在项目的每个更改中运行它。这将通过保存一个输入文件来保持数据文件的最新状态。

+0

这正是我想要做的。问题是如何编写这样的脚本,它将在一些插件中运行代码。 – okutane 2009-10-11 14:28:04

+0

只需用通常的方法编写一个ant脚本,并使用Eclipse项目中的“Builders”设置,让它在您点击该项目的任何编辑器中的“Save”时运行。 – 2009-10-13 08:23:20

相关问题