3

我正在尝试使用 Maven Tycho 构建几个 Eclipse 插件。所有插件的版本号都不相同。

假设以下 pom 架构:

  • plugin1(版本 1.0.6.qualifier)/ pom.xml
  • plugin2(版本 1.4.0.qualifier)/ pom.xml
  • pom.xml(父 pom 版本 1.0.0.SNAPSHOT)

Maven 的构建失败并出现以下错误:

[ERROR] Failed to execute goal org.eclipse.tycho:tycho-packaging-plugin:0.12.0:validate-version (default-validate-version) on project plugin1: Unqualified OSGi version 1.0.6.qualifier must match unqualified Maven version 1.0.0-SNAPSHOT for SNAPSHOT builds

如何配置父 pom 以能够构建具有不同版本号的那些插件?我应该使用不同的 pom 架构来解决这个问题吗?

请注意,我不想修改插件的版本。

4

4 回答 4

11

maven POM 版本和 MANIFEST 版本必须匹配(MANIFEST 中的后缀“.qualifer”替换为 pom.xml 中的“-SNAPSHOT”)。

请参阅http://wiki.eclipse.org/Tycho/Packaging_Types#eclipse-plugin

于 2011-08-01T15:00:31.157 回答
2

您可以像这样配置 tycho 插件,以便仅警告版本问题: http: //www.eclipse.org/tycho/sitedocs/tycho-packaging-plugin/validate-version-mojo.html

<plugins>
        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-packaging-plugin</artifactId>
            <configuration>
                <strictVersions>false</strictVersions>
            </configuration>
        </plugin>
    </plugins>

结果 :

[INFO] --- tycho-packaging-plugin:0.16.0:validate-version (default-validate-version) @ org.apache.commons.io ---
[WARNING] Unqualified OSGi version 5.1.0.qualifier must match unqualified Maven version 2.1.0-SNAPSHOT for SNAPSHOT builds
于 2014-07-15T14:00:17.937 回答
1

我找到了解决方案。我在每个模块的 pom.xml 中添加了与 Eclipse 插件版本对应的版本标签。

是否可以使用没有任何版本标签的 maven pom.xml 文件并让 tycho 使用 MANIFEST.MF 文件中指定的版本?

于 2011-07-10T12:27:39.580 回答
1

即使我遇到了同样的问题并找到了相同的解决方案。

实际上问题是 Manifest.MF 文件版本和 pom.xml 父版本应该相同,否则我们会得到这个错误。

Manifest.MF Bundle-版本:2.5.0.qualifier

pom.xml

<parent>
    <groupId>com.example.pma</groupId>
    <artifactId>com.example.pma.product.parent</artifactId>
    <version>2.5.0-SNAPSHOT</version>
    <relativePath>../com.example.pma.product.parent</relativePath>
</parent>
于 2015-01-07T14:38:32.533 回答