2013-10-09 114 views
1

當添加依賴於一個pom.xml排除主神器本身,是否可以排除主神器本身。 換句話說,我想添加一個依賴到我的POM,我只想下載它的依賴關係,而不是主jar。Maven的:從依賴

這就是我想做的事:

<dependency> 
    <groupId>net.sourceforge.htmlunit</groupId> 
    <artifactId>htmlunit</artifactId> 
    <version>2.12</version> 
    <exclusions> 
     <exclusion> 
      <groupId>net.sourceforge.htmlunit</groupId> 
      <artifactId>htmlunit</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

我知道這可能看起來很奇怪,但我確實在我的源文件夾中有化的HtmlUnit項目的修改版本,什麼我真正想要的只是它依賴的庫而不必將它們全部添加到我的POM中。

我嘗試了上面,似乎化的HtmlUnit-2.12.jar添加到我的項目,而這正是我想避免的。

什麼我可以做些什麼來解決此問題?

回答

2

您可以簡單地定義一個依賴於htmlunit的POM,而不是罐子。所以,你會定義依賴如下:

<dependencies> 
    <dependency> 
     <groupId>net.sourceforge.htmlunit</groupId> 
     <artifactId>htmlunit</artifactId> 
     <version>2.12</version> 
     <type>pom</type> 
    </dependency> 
    <!-- other project dependencies go here --> 
</dependencies> 

然後,您將獲得包含在你的項目中傳遞性的POM中定義的所有依存關係,但罐子的HtmlUnit將不包括在內。

0

通過閱讀你的問題,我可以說,你想要增加在排除罐中的其他項目的jar的POM文件中提到的依賴關係。

您可以通過這種方式實現這一目標,我在這裏表現出一般更改相應的屬性值的代碼按您的要求

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>other.pom.group.id</groupId> 
      <artifactId>other-pom-artifact-id</artifactId> 
      <version>SNAPSHOT</version> 
      <scope>import</scope> 
      <type>pom</type> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

Maven的網站上有這個依賴管理一個更好的說明,請參閱本Importing dependencyDependency Management

+0

這隻會增加依賴於'dependencyManagement'部分。它們不是顯式的項目依賴項 - 即不會在構建時包含在項目的類路徑中。您仍然需要在pom的''dependencies>'部分列出所有必需的依賴關係。 – DB5