2010-06-22 33 views
6

我有一個庫A,它依賴於庫B和C.我將庫B和C的庫類解壓縮到庫A的庫中,使用maven-依賴插件(見下文)。Maven:Unpack-Dependencies ...然後忘掉它們

現在,當庫D使用庫A時,庫D可以訪問A,B和C的所有類。但是,我希望D只依賴於A,而不依賴於傳遞依賴B和C.

alt text

我知道這可以通過手動不包括B和C的依賴AD但我想在A中乙不知何故聲明和C不被製成使用A.

已知模塊來實現
 <plugin> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>unpack-dependencies</id> 
        <phase>generate-resources</phase> 
        <goals> 
         <goal>unpack-dependencies</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

回答

6

我認爲你可以標記依賴範圍是「提供的」,所以依賴項目會假定罐子已經「提供」了。通常,它們是由容器提供的,你的情況,你在依賴A.

「提供」他們在任何情況下,模塊依賴於將忽略依賴B和C.

+0

謝謝!這個範圍完全適用於我的情況! – mxro 2010-06-22 22:53:58

4

第一個選項,使用dependency:unpack代替dependency:unpack-dependencies,因此在插件配置中列出B和C,而不是將它們聲明爲依賴關係(所以它們對於D來說是未知的)。

第二個選項,申報B和C與provided範圍A的依賴彼得(見Transitive Dependencies‎)的建議和D.

+0

謝謝! Dependency Unpack看起來是一個不錯的選擇。感謝您提供Maven文檔的鏈接!我認爲「提供」的描述有點誤導。但是這個範圍正是在上面所示的情況下完成的。 – mxro 2010-06-22 22:57:02

相關問題