4

接頭辞ディレクトリを追加して、RCP アプリを含む zip を解凍したときにコンテンツを含むディレクトリを取得するにはどうすればよいですか?

tycho が私の rcp アプリをマテリアライズしてアーカイブすると、target/products/my.rcp.app/linux/gtk/x86_64/ の内容がディレクトリ プレフィックスなしで圧縮されます。

現在の zip コンテンツ:

  • 。/特徴
  • ./プラグイン
  • ...

必要な zip コンテンツ:

  • ./myapp/機能
  • ./myapp/プラグイン
  • ...

ユーザーが zip を解凍すると、app ディレクトリが作成されるようにしたいと思います。私は tycho docs を調べましたが、アーカイブもマテリアライズもこれを構成する適切な場所ではないようです。私は常にantrunまたはアセンブリプラグインを使用して作業を行うことができましたが、それは問題を解決するための正しいmavenの方法とは思えません.

プレフィックスディレクトリを追加する方法を教えてください。

4

2 に答える 2

6

構成は実際には少し混乱しており、実際には文書化されていません。(現在) 1 つの 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 オプションを使用する必要がありました。.product ファイルに achivePrefix を挿入しようとしましたが、うまくいきませんでした。私は最終的に分解し、tycho ソースを取得し、逆方向に作業して 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 に答える