【问题标题】:Performing substitutions in Eclipse product configuration file with tycho使用 tycho 在 Eclipse 产品配置文件中执行替换
【发布时间】:2012-05-02 09:07:53
【问题描述】:

我有一个使用 Tycho 构建的 Eclipse RCP 产品。在一些较小的问题之后,这工作得很好,我有 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>

运行此配置时,我从 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进程似乎根本不为这种类型的打包执行资源过滤。还是??

我尝试了很多不同的方法,但我无法让它发挥作用。我最好的猜测是我必须配置生命周期,但是如何...

谁能帮我解决这个问题?

【问题讨论】:

    标签: eclipse maven tycho


    【解决方案1】:

    【讨论】:

    • 谢谢。我已经抄送给自己了。
    【解决方案2】:

    您无需在categories.xml 中明确指定版本。只需将0.0.0 指定为版本,第谷就会将其替换为所包含功能的实际版本。

    【讨论】:

      猜你喜欢
      • 2012-06-15
      • 2012-01-24
      • 1970-01-01
      • 2012-11-17
      • 1970-01-01
      • 2018-02-10
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多