2014-01-15 3 views
0

Я следующее определение в родительском ПОМ:Maven POM файл наследования объема

<dependency> 
    <groupId>net.sourceforge.htmlunit</groupId> 
    <artifactId>htmlunit</artifactId> 
    <version>2.11</version> 
    <scope>test</scope>  
</dependency> 

И тогда это в моем детском ПОМ:

<dependency> 
    <groupId>net.sourceforge.htmlunit</groupId> 
    <artifactId>htmlunit</artifactId> 
</dependency> 

Я нахожу, что, когда мой WAR файл (тип упаковки в моем дочернем помпе), что транзитивные зависимости от htmlunit включены в каталог WEB-INF/lib (в частности, commons-codec).

Я бы подумал, что, поскольку зависимость имеет область «теста», что она и любая ее транзитивная зависимость не должны быть упакованы. Неправильно ли мое предположение?

ответ

0

Ваше предположение неверно. Поскольку вы предоставили проверку области, эта банка будет присутствовать как для фазы тестирования, так и для выполнения.

Объем должен быть предоставлен вместо этого. Предоставленная область сделает банку доступной для пути компиляции и тестирования, и не является транзитивной.

Для получения более подробной информации обратитесь к разделу http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html зависимости.

Смежные вопросы