如何获取tycho materialize-product和archive-product以使用我的RCP应用程序归档文件的目录前缀

时间:2013-08-21 18:41:47

标签: eclipse-rcp tycho

如何添加前缀目录,这样当我解压缩包含我的RCP应用程序的zip时,我会得到一个包含内容的目录?

当tycho资格化并存档我的rcp应用程序时,它会在没有目录前缀的情况下压缩目标/ products / my.rcp.app / linux / gtk / x86_64 / contents。

当前的zip内容:

  • ./特征
  • ./插件
  • ...

所需的拉链内容:

  • ./ MYAPP /特征
  • ./ MYAPP /插件
  • ...

当用户解压缩zip时,我想要创建app目录。我查看了tycho文档,但是归档和物化都不是配置它的正确位置。我总是可以使用antrun或汇编插件来完成这项工作,但这并不是解决问题的正确方法。

请告诉我如何添加前缀目录。

2 个答案:

答案 0 :(得分:6)

配置实际上有点混乱而不是documented。由于您(当前)可以在一个eclipse-repository模块中拥有多个产品文件,因此您需要选择要应用配置的产品ID。

因此,要为ID为product.id的产品设置存档根文件夹,您需要以下配置:

<build>
  <plugins>
    <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>
            <goals>
              <goal>archive-products</goal>
            </goals>
        </execution>
      </executions>
      <configuration>
        <products>
          <product>
            <id>product.id</id>
            <rootFolder>myapp</rootFolder>
          </product>
        </products>
      </configuration>
    </plugin>
  </plugins>
</build>

答案 1 :(得分:0)

谢谢,但我需要使用rootFolder选项添加额外的目录。我尝试将achivePrefix注入.product文件,但是没有用。我终于崩溃了,抓住了tycho源并向后工作以找到rootFolder。在这次旅程之后,我在文档中看到了它并且扼杀了它的含义。

Doc:http://wiki.eclipse.org/Tycho/Packaging_Types#Creating_Product_Zip_Files

相关:https://issues.sonatype.org/browse/TYCHO-507

        <plugins>
        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-director-plugin</artifactId>
            <version>${tycho-version}</version>
            <configuration>
            <products>
              <product>
         <id>match-product-uid-field-from-foo.product-file</id>
         <rootFolder>workbench</rootFolder>
                </product>
          </products>
            </configuration>
            <executions>
                <execution>
                    <!-- install the product using the p2 director -->
                    <id>materialize-products</id>
                    <goals>
                        <goal>materialize-products</goal>
                    </goals>
                </execution>
                <execution>
                    <!-- create zip file with the installed product -->
                    <id>archive-products</id>
                    <goals>
                        <goal>archive-products</goal>
                    </goals>
                    <configuration>
                        <formats>
                            <linux>tar.gz</linux>
                            <win32>zip</win32>
                        </formats>                          
                    </configuration>
                </execution>
            </executions>
        </plugin>