【问题标题】:Maven Tycho: How to Exclude eclipsec.exe in a product build?Maven Tycho:如何在产品构建中排除 eclipsec.exe?
【发布时间】:2012-08-06 14:00:15
【问题描述】:

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

【问题讨论】:

    标签: maven eclipse-rcp tycho


    【解决方案1】:

    我在tycho-users list 上得到了这个答案:

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

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

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

    【讨论】:

      【解决方案2】:

      我不知道如何直接用 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。
      希望对您有所帮助。

      【讨论】:

      • 好主意!当然,构建现在需要调用“mvn integration-test”而不是“mvn package”。尽管无论如何我都需要这样做,因为插件测试也绑定到集成测试阶段。但我最终使用了邮件列表中建议的 p2.inf 文件。太糟糕了,我不能同时接受这两个答案!
      猜你喜欢
      • 1970-01-01
      • 2020-12-13
      • 2018-02-12
      • 2015-03-31
      • 2023-03-19
      • 1970-01-01
      • 2012-11-17
      • 2012-07-20
      • 2018-12-10
      相关资源
      最近更新 更多