2015-02-17 2 views
6

Я собираю все библиотеки зависимостей в папке сепаратора на mvn package следующим образом:Как исключить область тестирования maven из фазы пакета?

<plugin> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <version>${maven.copy.plugin}</version> 
     <executions> 
      <execution> 
       <id>copy-dependencies</id> 
       <phase>package</phase> 
       <goals> 
        <goal>copy-dependencies</goal> 
       </goals> 
       <configuration> 
        <outputDirectory>${project.build.directory}/lib/</outputDirectory> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 

Проблема: это также включает <scope>test</scope> библиотеки. Как я могу исключить эти библиотеки?

+0

Первый вопрос: Почему это делается? Каково намерение сделать что-то подобное? Создание EAR/WAR /? – khmarbaise

+1

Разве вы не читали руководство? http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html#excludeScope –

+0

@khmarbaise моя цель - создать исполняемый банку без всех библиотек, упакованных внутри, но в отдельной папке внутри исполняемый файл. Уменьшает размер файла, когда сам проект обновляется, но никаких зависимостей не изменилось (приходится часто копировать проект jar по сети). – membersound

ответ

14

Используйте includeScope включать только runtime области видимости зависимостей:

<plugin> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>${maven.copy.plugin}</version> 
    <executions> 
     <execution> 
      <id>copy-dependencies</id> 
      <phase>package</phase> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${project.build.directory}/lib/</outputDirectory> 
       <includeScope>runtime</includeScope> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

По-видимому, не кажется <excludeScope>test</excludeScope> быть поддержан, поскольку test сфера охватывает всю зависимость (https://issues.apache.org/jira/browse/MDEP-85).

+0

Я пробовал, но получил следующую ошибку: 'Не могу исключить область тестирования, это исключит все. -> [Помощь 1] ' – membersound

+0

Хм, я обнаружил, что это, вероятно, невозможно: http://jira.codehaus.org/browse/MDEP-85 – membersound

+0

Правильно, вы можете использовать обходное решение, упомянутое в комментариях к проблеме: в основном, только зависящие от времени выполнения. – manouti