Maven Tycho:如何在产品构建中排除eclipsec.exe?

时间:2012-08-06 14:00:16

标签: maven eclipse-rcp tycho

我将Eclipse RCP产品的构建从PDE-build转换为Maven Tycho。除了主要(品牌)启动器可执行文件之外,该产品现在还包括" eclipsec.exe"文件。我们想从我们的产品中省略这个基于控制台的启动器,因为它可能会让我们的客户感到困惑。是否有办法与第谷一起做到这一点?

2 个答案:

答案 0 :(得分:12)

我在tycho-users list

上得到了这个答案

在您的eclipse-repository项目中,假设您有.product文件,您可以将另一个文件放在名为.p2.inf的同一目录中

对于p2.inf文件的内容,您可以放置​​一个p2接触点来删除该文件:

instructions.configure=org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/eclipsec.exe);

答案 1 :(得分:1)

我不知道如何直接用tycho解决,但你可以用maven-antrun-plugin实现这个目的。有一个小技巧可以及时删除eclipsec.exe。 你必须在实现和p2-director-plugin的归档目标之间设置删除步骤。我将删除步骤放在阶段预集成测试上,并将归档步骤移至阶段集成测试。

<plugin>
      <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>delete-eclipsec.exe</id>
            <phase>pre-integration-test</phase>
            <configuration>
              <target>
                <delete file="${project.build.directory}/products/<<your.product.id>>/win32/win32/x86/eclipsec.exe"/>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-director-plugin</artifactId>
        <version>${tycho-version}</version>
        <executions>
          <execution>
            <id>materialize-products</id>
            <goals>
              <goal>materialize-products</goal>
            </goals>
          </execution>
          <execution>
            <id>archive-products</id>
            <phase>integration-test</phase>
            <goals>
              <goal>archive-products</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

结果:product.zip中没有eclipsec.exe 希望有所帮助。