2012-08-06 70 views
5

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

回答

11

我上了tycho-users list这样的回答:

在Eclipse的仓库项目,假设你有一个。产品的文件,您可以将其他文件中被称为.p2.inf

相同的目录为了您的p2.inf文件的内容,你可以把一个P2接触点来删除该文件:

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

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。
希望有所帮助。

+0

好主意!当然,构建现在需要调用“mvn integration-test”而不是“mvn package”。尽管我仍然需要这样做,因为插件测试也必须与集成测试阶段绑定。但是我最终使用了邮件列表中建议的p2.inf文件。太糟糕了,我不能接受这两个答案! – 2012-08-07 15:07:38

相关问题