2015-02-17 9 views
6

Sto raccogliendo tutte le librerie di dipendenza in una cartella di separazione su mvn package come segue:Come escludere un ambito di prova di Maven dalla fase del pacchetto?

<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> 

Problema: questo includono anche <scope>test</scope> librerie. Come posso escludere queste librerie?

+0

Prima domanda: perché lo fanno? Qual è l'intenzione di fare una cosa come questa? Creare un EAR/WAR /? – khmarbaise

+1

Non hai letto il manuale? http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html#excludeScope –

+0

@khmarbaise il mio obiettivo è creare un jar eseguibile senza tutte le librerie compresse all'interno, ma in una cartella separata all'interno l'esecuzione dir. Riduce le dimensioni del file quando il progetto stesso viene aggiornato, ma nessuna dipendenza cambia (è necessario copiare il progetto jar spesso in rete). – membersound

risposta

14

Utilizzare un includeScope di includere solo runtime scope dipendenze:

<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> 

A quanto pare, <excludeScope>test</excludeScope> non sembra essere supportato perché la portata test copre tutte le dipendenze (https://issues.apache.org/jira/browse/MDEP-85).

+0

L'ho provato, ma ho ricevuto l'errore seguente: 'Impossibile escludere l'ambito del test, questo escluderà tutto. -> [Aiuto 1] ' – membersound

+0

Hm, ho trovato che probabilmente non è possibile: http://jira.codehaus.org/browse/MDEP-85 – membersound

+0

A destra, è possibile utilizzare la soluzione menzionata nei commenti del problema: principalmente includono solo dipendenze dello scope di runtime. – manouti

Problemi correlati