如何从单个父 pom.xml 构建具有不同版本的插件?

发布于 2024-11-19 01:34:32 字数 610 浏览 7 评论 0原文

我正在尝试使用 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 架构来解决这个问题吗?

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

I am trying to build several Eclipse plug-ins with Maven Tycho. All the plug-ins does not have the same version number.

Let's say the following pom architecture:

  • plugin1 (version 1.0.6.qualifier) / pom.xml
  • plugin2 (version 1.4.0.qualifier) / pom.xml
  • pom.xml (parent pom version 1.0.0.SNAPSHOT)

Maven's build fails with the following error:

[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

How to configure the parent pom to be able to build those plug-ins with different version numbers?
Should I use a different pom architecture to solve this issue?

Note that I don't want to modify plug-in's versions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

や莫失莫忘 2024-11-26 01:34:32

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

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

maven POM version and MANIFEST version must match (with suffix ".qualifer" in MANIFEST replaced by "-SNAPSHOT" in pom.xml).

See http://wiki.eclipse.org/Tycho/Packaging_Types#eclipse-plugin

记忆里有你的影子 2024-11-26 01:34:32

您可以像这样配置 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

You can configure tycho plugin like that in order to only Warn versions problems : 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>

Result :

[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
蓝眼泪 2024-11-26 01:34:32

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

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

I found a solution. I added a version tag corresponding to the Eclipse plug-in version in each modules' pom.xml.

Is it possible to use maven pom.xml files without any version tag and let tycho using version specified in MANIFEST.MF files?

舂唻埖巳落 2024-11-26 01:34:32

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

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

清单.MF
捆绑版本: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>

Even i have faced the same problem and found the solution for the same.

Actually the problem is Manifest.MF file version and pom.xml parent version should be same otherwise we will get this error.

Manifest.MF
Bundle-Version: 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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文