4

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

当 tycho 将我的 rcp 应用程序物化并归档时,它会压缩 target/products/my.rcp.app/linux/gtk/x86_64/ 内容,而没有目录前缀。

当前压缩包内容:

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

所需的 zip 内容:

  • ./myapp/功能
  • ./myapp/plugins
  • ...

当用户解压缩 zip 时,我希望创建应用程序目录。我查看了 tycho 文档,但无论是归档还是实现似乎都不是配置它的正确位置。我总是可以使用 antrun 或程序集插件来完成这项工作,但这并不是解决问题的正确 maven 方式。

请让我知道如何添加前缀目录。

4

2 回答 2

6

配置确实有点混乱,并没有真正记录在案。由于您(当前)可以在一个 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>
于 2013-08-22T08:52:35.487 回答
0

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

文档: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>
于 2013-08-22T14:36:21.763 回答