2013-04-18 2 views
1

Я использую цель копирования для копирования зависимостей для текущего артефакта. Но он не копирует зависимости с областью «предоставлено». Как это исправить?Force Maven 3 для копирования «предоставленных» зависимостей

Конфигурация XML является стандартным:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>copy-dependencies</id> 
        <phase>install</phase> 
        <goals> 
         <goal>copy-dependencies</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>lib</outputDirectory> 
         <overWriteReleases>true</overWriteReleases> 
         <overWriteSnapshots>true</overWriteSnapshots> 
         <overWriteIfNewer>true</overWriteIfNewer> 
         <excludeArtifactIds>project-services</excludeArtifactIds> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
    <finalName>project-web</finalName> 
</build> 

Почему я хочу, чтобы это сделать? Потому что я должен поддерживать работу муравьев и maven. Поэтому я хочу скопировать все зависимости в отдельный каталог, запустив mvn install -o. В Ant build.xml я включаю путь к этому каталогу как classpath. После этого Ant строит файл уха и включает в себя полный каталог lib с системными инструментами system.jar и другими «предоставленными» банками. версия Apache Maven является 3.0.3

+0

Какая команда Maven вы работаете ? – orique

+4

Зачем вы хотите это сделать? Зависимости с scope = provided отмечены таким образом, потому что они уже присутствуют в целевой среде. Зачем вам их копировать? – OldCurmudgeon

+3

Зачем маркировать их, если вам нужно их скопировать? –

ответ

1

Как документировано использования плагина includeScope:

http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html#includeScope

Редактировать:

Почему я хочу, чтобы это сделать? Потому что я должен поддерживать работу как ant, так и maven .

Рассмотрим использовать плющ управлять зависимостями с Ant: http://ant.apache.org/ivy/

Вот пост, как вы можете настроить Плющ для подключения к Nexus:

https://support.sonatype.com/entries/21627528-how-do-i-configure-my-ivy-build-to-download-artifacts-from-nexus

+0

Но в документации также указывается * Сфера охвата. Пустая строка указывает все области действия (по умолчанию). * Поэтому не нужно использовать 'includeScope'. – maba

+0

Правда, я только что видел это. – Puce

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