2015-12-14 2 views
-2

У меня есть проекты Maven, которые я могу построить с этими зависимостями:Списка используется только банки

 <dependency> 
      <groupId>org.wildfly.arquillian</groupId> 
      <artifactId>wildfly-arquillian-container-embedded</artifactId> 
      <version>1.0.2.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.wildfly</groupId> 
      <artifactId>wildfly-embedded</artifactId> 
      <version>9.0.2.Final</version> 
     </dependency> 

Есть много баночек в эти зависимости, и я хотел бы использовать на необходимом. Как я могу указать, какие банки нужны только для сборки?

+0

Вы действительно нуждаетесь в транзитивной зависимости? Или какая прямая зависимость действительно нужна? – Tunaki

+0

Да, я хочу знать, какая прямая зависимость действительно нужна. –

+0

Вы ищете 'mvn dependency: analysis'? –

ответ

1

Простой ответ на ваш вопрос заключается в том, что нет простого способа сделать то, что вы просите. В maven вы объявляете для своего пакета все зависимости, которые код внутри вашего пакета когда-либо понадобится во всех сценариях. В этом случае, если вы используете только определенную часть встроенного в wildfly пакета и ту часть, которую вы используете, зависит только от поднабора заявленных зависимостей пакета, тогда Maven не знает этого.

Один из подходов, который вы можете предпринять, - просто посмотреть на заявленные зависимости этих артефактов, исключить один из них, а затем запустить тестовый набор. Предполагая, что у вас есть исчерпывающий набор тестов, если тесты прошли тогда, вы можете разумно предположить, что какая-либо зависимая от вас зависимость не требовалась ни одной из частей библиотеки, которую вы использовали. Вы можете сделать это для каждой из заявленных зависимостей.

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