3

私は Tycho で構築した Eclipse RCP 製品を持っています。いくつかの小さな問題の後、これはかなりうまく機能しており、必要に応じて CI とリリースの両方を持っています。

問題の製品は、インストール可能なスタンドアロン RCP アプリケーションと更新サイトの両方として提供されているため、バニラ Eclipse インストールで機能をインストールできます。これもうまくいきます。

この製品には主な機能 (更新サイトで使用されるもの) があり、その機能と製品のバージョン番号が同じであることを強く望みます。今日のように、このバージョン番号は多くの場所で言及されており、これを 1 つだけに減らしたいと考えています。現在、バージョン番号を持っています

  • feature.xml主な機能の
  • pom.xml同じ機能の
  • .product製品構成ファイルのファイル
  • ファイルpom.xmlを含むプロジェクトの.product
  • categories.xml更新サイトのファイル
  • about.mappingsファイル_

私はmavenリソースフィルターを使用しようとしましたが、それはPOMファイルとabout.mappingsで機能しますが、残りは機能しません。これはpom.xml、主な機能の私の現在です。

<?xml version="1.0" encoding="UTF-8"?>
<project ...>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>...main.feature</artifactId>
    <version>${product.version}-SNAPSHOT</version>
    <packaging>eclipse-feature</packaging>

    <parent>
        <groupId>...</groupId>
        <artifactId>...parent</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <relativePath>../...parent</relativePath>
    </parent>

    <build>
        <!-- Substitutions: product.version -->
        <resources>
            <resource>
                <directory>.</directory>
                <includes>
                    <include>feature.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>

この構成を実行すると、Tycho から次の例外 (またはそれに非常によく似た例外) が発生します。

[ERROR] Internal error: java.lang.IllegalArgumentException -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.IllegalArgumentException
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:168)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
Caused by: java.lang.IllegalArgumentException
        at org.eclipse.equinox.internal.p2.metadata.VersionParser.parse(VersionParser.java:93)
        at org.eclipse.equinox.p2.metadata.Version.create(Version.java:79)
        at org.eclipse.tycho.p2.impl.publisher.FeatureDependenciesAction.getVersion(FeatureDependenciesAction.java:126)
        at org.eclipse.tycho.p2.impl.publisher.AbstractDependenciesAction.perform(AbstractDependenciesAction.java:79)
        ... 11 more

(ちょっと線を切ってしまった…)

基本的に、埋め込まれた Maven プロセスは、このタイプのパッケージングのリソース フィルタリングをまったく実行しないようです。または??

いろいろ試してみましたが、うまくいきません。私の最善の推測では、ライフサイクルを構成する必要がありますが、どのように...

誰でもこれで私を助けることができますか?

4

2 に答える 2

3

これは既知のバグです:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=362252

于 2012-05-03T06:20:20.847 に答える
1

でバージョンを明示的に指定する必要はありませんcategories.xml。バージョンとして指定するだけ0.0.0で、Tycho は含まれている機能の実際のバージョンに置き換えます。

于 2012-07-19T16:31:24.353 に答える