提问者:小点点

如何让第谷具体化产品和存档产品为我的 RCP 应用程序存档文件使用目录前缀


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

当tycho对我的rcp应用程序进行实体化和归档时,它会在没有目录前缀的情况下压缩目标/产品/my.rcp.app/linux/gtk/x86_64/内容。

当前zip内容:

  • ./功能
  • ./插件

所需的zip内容:

    <李>。/myapp/功能 <李>。/myapp/插件 <李>...

当用户解压zip时,我希望创建应用程序目录。我查看了tycho文档,但归档和物化似乎都不是配置它的正确位置。我总是可以使用antrun或汇编插件来完成这项工作,但这感觉不像是解决问题的正确方法。

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


共2个答案

匿名用户

配置确实有点乱,也没有真正的文档记录。因为您(目前)可以在一个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>

匿名用户

谢谢,但我需要使用rootFolder选项来添加额外的目录。我尝试将achivePrefix注入. produc文件,但没有成功。我终于崩溃了,抓起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>