为什么包含<packaging>元素</packaging>

时间:2012-01-27 13:32:32

标签: maven nexus pom.xml maven-central

当我导航到 - http://search.maven.org/#artifactdetails%7Corg.apache.portals.pluto%7Cpluto-container-api%7C2.0.2%7Cbundle

依赖是 -

<dependency>
    <groupId>org.apache.portals.pluto</groupId>
    <artifactId>pluto-container-api</artifactId>
    <version>2.0.2</version>
    <packaging>bundle</packaging>
</dependency>

不应该 -

<dependency>
    <groupId>org.apache.portals.pluto</groupId>
    <artifactId>pluto-container-api</artifactId>
    <version>2.0.2</version>
</dependency>

由于包含标签似乎导致错误,附加 -

enter image description here

2 个答案:

答案 0 :(得分:2)

使用maven-bundle-plugin构建工件以使工件能够在OSGi环境中使用(可以在此包的父pom中看到)。此插件引入了“bundle”打包类型。

由于工件仍然是一个“jar”,您可以跳过在依赖项部分中指定<type>(您提到的存储库Web界面的呈现<dependency>部分是错误的。没有{{ 1}} <packaging>内的元素。<dependency>是maven coordinates之一。

答案 1 :(得分:1)

似乎可以公平地假设您引用的XML要复制并粘贴到pom.xml中。

你是对的。删除<packaging>是正确的做法。

无需指定类型,因为捆绑工件无论如何都具有“jar”扩展名。例如,即使包装不是'罐',也可能是'战争' - 使用的正确元素是<type>而不是<packaging>