2012-12-12 9 views
14

Voglio usare Maven per eseguire un determinato plug-in che richiede solo il codice sorgente ma non voglio che Maven compili nulla (principalmente perché il progetto non si compila).Maven salta compila

Come posso dire a Maven di saltare il passaggio di compilazione e avviare il suo plug-in e quindi raggruppare le risorse generate insieme in un bel JAR? (La procedura del l'ultimo passo è già noto a me.)

Informazione supplementare:

Così abbiamo provato un sacco di cose in questo momento, per esempio:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.0</version> 
    <configuration> 
     <excludes> 
      <exclude>**/*</exclude> 
     </excludes> 
     <source>1.7</source> 
      <target>1.7</target> 
    </configuration> 
    <executions> 
     <execution> 
      <phase>deploy</phase> 
     </execution> 
    </executions> 
</plugin> 

Anche quando facciamo a mvn package otteniamo questo:

[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ project --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling ALOTOF source files to /home/myname/dir/dir/project/target/classes 

messaggio modificato ofc.

risposta

-1

Definirei un pom separato solo per la costruzione di questo artefatto separato.

In questo pom, si utilizzano solo il plug-in di generazione di risorse e quelli di imballaggio.

Quindi non devi preoccuparti di fare troppo.

4

La funzionalità di Maven è parzialmente organizzata in plugin, che contiene obiettivi. Questi obiettivi possono essere eseguiti senza essere parte di un ciclo di vita. Ad esempio per per vaso-gol di vaso-plugin si dovrebbe invocare:

mvn jar:jar 

Se si naviga attraverso the list of available plugins si propably trovare la functionalyity che stai cercando. Se è necessario, puoi anche definire un "assembly" per selezionare i file che desideri raggruppare in un archivio.

13
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>default-compile</id> 
     <phase>compile</phase> 
     <goals> 
      <goal>compile</goal> 
     </goals> 
     <configuration> 
     <skipMain>true</skipMain> <--Skip 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

Impostare questo a 'vero' per bypassare la compilazione delle fonti principali. Il suo uso è NON RACCOMANDATO, ma abbastanza conveniente in occasione. La proprietà dell'utente è: maven.main.skip.

mvn package -Dmaven.main.skip

2

Per evitare la compilazione Maven per impostazione predefinita, prima assicurarsi che la configurazione di Maven-compiler-plugin ha useIncrementalCompilation = false:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.3</version> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
     <useIncrementalCompilation>false</useIncrementalCompilation> 
    </configuration> 
</plugin> 

Inoltre, nel caso in cui il tuo profilo Maven utilizza maven-clean-plugin, quindi per impostazione predefinita scopre ed elimina la configurazione delle directory Ed in project.build.directory, project.build.outputDirectory, project.build.testOutputDirectory, e project.reporting.outputDirectory.

Per disattivare queste pulizie predefiniti, aggiungere a Maven-pulito-plugin configurazione: excludeDefaultDirectories = true:

<excludeDefaultDirectories>true</excludeDefaultDirectories>