使用tycho在Eclipse产品配置文件中执行替换

使用tycho在Eclipse产品配置文件中执行替换,eclipse,maven,tycho,Eclipse,Maven,Tycho,我有一个EclipseRCP产品,是我与Tycho一起构建的。经过一些小问题,这是工作得很好,我有两个CI和发行版想要的 所讨论的产品既作为可安装的独立RCP应用程序提供,也作为更新站点提供,因此该功能可以安装在普通Eclipse安装中。这也很好用 该产品有一个主要功能-这是在更新网站上使用-我非常希望该功能和产品有相同的版本号。就在今天,这个版本号被提到的地方很多,我真的想把它减少到一个。我目前在中有版本号 主要功能的feature.xml 相同功能的pom.xml 产品配置文件的.prod

我有一个EclipseRCP产品,是我与Tycho一起构建的。经过一些小问题,这是工作得很好,我有两个CI和发行版想要的

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

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

  • 主要功能的
    feature.xml
  • 相同功能的
    pom.xml
  • 产品配置文件的
    .product
    文件
  • 包含
    .product
    文件的项目的
    pom.xml
  • 更新站点的
    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>
(我剪了几行…)

基本上,嵌入式maven进程似乎根本不为这种类型的打包执行资源过滤。还是

我试过很多不同的方法,但都不能成功。我最好的猜测是我必须配置生命周期,但是如何

有人能帮我吗?

这是一个已知的错误:


您不需要在
categories.xml
中明确指定版本。只需将
0.0.0
指定为版本,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