2012-01-27 88 views
1

當我瀏覽到 - http://search.maven.org/#artifactdetails%7Corg.apache.portals.pluto%7Cpluto-container-api%7C2.0.2%7Cbundle爲什麼<packaging>元素包括

的依賴性 -

<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

回答

1

這似乎是一個公平的假設,您引用的XML旨在被複制並粘貼到pom.xml中。

你說得對。刪除<packaging>是正確的事情。

沒有必要指定類型,因爲bundle文物無論如何都有一個'jar'擴展名。即使包裝不是'罐子'‒說,例如,它是'戰爭'‒正確的元素使用將是<type>而不是<packaging>

+0

+1提的是''在'dependency'部分要使用正確的元素,而不是''(這是由儲備庫Web界面建議) – FrVaBe 2012-01-27 14:58:55

+0

爲什麼要使用代替?這是爲了避免與頂級元素混淆? – 2012-01-27 15:31:57

+1

@ user470184有一個頂層的''元素,它定義了項目的工件類型。如果你想在''部分指定這個,你必須使用''元素。這就是[pom結構](http://maven.apache.org/pom.htm)的定義。對於這兩個元素'jar'是默認值。 – FrVaBe 2012-01-27 15:36:50

2

該構件使用maven-bundle-plugin構建,以便在OSGi環境中使用該構件(可以在此包的父pom中看到)。這個插件介紹'bundle'包裝類型。

由於神器仍然是一個「罐子」你可以跳過你所依賴的部分(你提到的儲備庫Web界面的呈現<dependency>部分是錯誤的指定<type>,裏面有<dependency>沒有<packaging>元素。<packaging>是一個maven coordinates)。