私は 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 プロセスは、このタイプのパッケージングのリソース フィルタリングをまったく実行しないようです。または??
いろいろ試してみましたが、うまくいきません。私の最善の推測では、ライフサイクルを構成する必要がありますが、どのように...
誰でもこれで私を助けることができますか?