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