3

我有一个使用 Tycho 构建的 Eclipse RCP 产品。在一些较小的问题之后,这工作得很好,我有 CI 和想要的版本。

有问题的产品既作为可安装的独立 RCP 应用程序提供,也作为更新站点提供,因此可以在 vanilla Eclipse 安装中安装该功能。这也很好。

该产品有一个主要功能 - 在更新站点上使用 - 我非常希望该功能和产品具有相同的版本号。就像今天一样,这个版本号被提到的地方很多,我真的很想把它减少到一个。我目前有版本号

  • 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为版本,第谷就会将其替换为所包含功能的实际版本。

于 2012-07-19T16:31:24.353 回答