3

我们正在开发一个由几个插件组成的 Eclipse 产品,其中一些是我们开发的。我们的每个插件都被定义为工作区中的一个 Eclipse 插件项目,并且有两个文件夹,source 和 test。最近我注意到我们正在向用户提供测试类,就像我们的源类一样。现在我想从我们的产品结果中删除测试类。我是否应该从 Java 构建路径中删除测试文件夹(见附件)?我还应该怎么做才能不将我们的测试部署给最终用户?

在此处输入图像描述

为了构建项目,我们使用 eclipse 标准 ant 脚本来创建我们的 zip 文件。我找不到在哪里可以排除测试文件。这是 Ant 脚本:

<property name="allElementsFile" value="${eclipse.pdebuild.scripts}/productBuild/allElements.xml"/>
<import file="${eclipse.pdebuild.scripts}/build.xml"/>
<property name="pluginPath" value=""/>
<property name="pluginList" value=""/>
<property name="featureList" value=""/>
<property name="includeLaunchers" value="true"/>
<property name="generatedBuildProperties" value=""/>
<condition property="nestedInclusions" value="true">
    <istrue value="${p2.gathering}" />
</condition>

<!-- ===================================================================== -->
<!-- main entry point to setup, fetch, generate, build etc. Use -->
<!-- the customTargets.xml to modify the build behaviour. -->
<!-- ===================================================================== -->
<target name="main" description="the main build target">    
    <antcall target="preBuild" />
    <antcall target="processRepos"/>
    <antcall target="generateFeature"> <!-- Generate the feature to drive the fetch -->
        <param name="verify" value="false"/>
    </antcall>
    <antcall target="fetch" />
    <antcall target="generateFeature"> <!-- We are calling generate feature a second time so that we can get the pack / unpack clause fixed -->
        <param name="verify" value="true"/>
    </antcall> 
    <antcall target="generate" /> 
    <antcall target="process" /> 
    <antcall target="assemble" />
    <antcall target="package" />
    <antcall target="postBuild" />
</target>

<!-- ===================================================================== -->
<!-- Generate a container feature based on the product file                -->
<!-- The plugin or feature containing the .product file will need to exist -->
<!-- already, use preSetup or postSetup to fetch it if necessary           -->
<!-- ===================================================================== -->
<target name="generateFeature">
    <eclipse.generateFeature
        featureId="org.eclipse.pde.build.container.feature"
        buildDirectory="${buildDirectory}"
        baseLocation="${baseLocation}"
        productFile="${product}"
        verify="${verify}"
        pluginPath="${transformedRepoLocation}${path.separator}${pluginPath}"
        configInfo="${configs}"
        pluginList="${pluginList}"
        featureList="${featureList}"
        includeLaunchers="${includeLaunchers}"
        buildPropertiesFile="${generatedBuildProperties}"
        nestedInclusions="${nestedInclusions}"
        filterP2Base="${filterP2Base}"
    />
</target>


</project>
4

2 回答 2

1

这是您的部署过程/脚本的问题。您是否使用 Eclipse 构建 jar ?它不应该与构建路径有关,如果您使用 Eclipse 对其进行编码,则应该将测试源保留在构建路径中。通常使用 Ant 或 Maven 的部署过程会从结果中排除测试类(jar、war、...)。还建议在创建 jar 之前自动运行测试。

于 2013-02-06T14:29:17.093 回答
0

要在使用 pde ant 脚本构建 pde 项目时从代码中删除测试文件(如果您为每个插件项目定义了一个源文件夹和一个测试文件夹),您应该从该项目的 build.properties 中删除测试文件夹。build.properties 是 plugin.xml 的一部分

于 2013-02-08T08:21:47.533 回答