2012-12-12 5 views
14

Ich möchte mit Maven ein bestimmtes Plug-In ausführen, das nur den Quellcode benötigt, aber Maven möchte nichts kompilieren (meistens weil das Projekt nicht kompiliert wird).Maven überspringen Kompilieren

Wie sage ich Maven, den Kompilierungsschritt zu überspringen und nur sein Plug-in zu starten und dann die generierten Ressourcen in einem netten JAR zu packen? (Das Verfahren des letzten Schrittes ist mir schon bekannt.)

Zusätzliche Information:

So haben wir versucht, eine Menge Dinge, gerade jetzt, zum Beispiel:

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

Obwohl, wenn wir tun a mvn package erhalten wir dies:

[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 

Nachricht bearbeitet OFC.

Antwort

-1

Ich würde eine separate Pom nur für den Aufbau dieses separaten Artefakt definieren.

In diesem Pom verwenden Sie nur Ihre Ressourcen Generation Plugin und die Verpackung.

Dann müssen Sie sich keine Sorgen machen, dass es zu viel macht.

4

Maven Funktionalität ist teilweise in Plugins organisiert, die Ziele enthält. Diese Ziele können ausgeführt werden, ohne Teil eines Lebenszyklus zu sein. ZB muss für für das Glas-Ziel des jar-plugin würden Sie rufen:

mvn jar:jar 

Wenn Sie durch the list of available plugins blättern finden Sie propably die functionalyity die Sie suchen. Wenn es notwendig ist, könnten Sie sogar eine "Assembly" definieren, um die Dateien auszuwählen, die Sie in ein Archiv bündeln möchten.

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> 

Sets dies auf 'true' zu Bypass-Kompilation von Hauptquellen. Sein Gebrauch ist NICHT EMPFOHLEN, aber bei Gelegenheit ziemlich bequem. Benutzereigenschaft ist: maven.main.skip.

mvn package -Dmaven.main.skip

2

Um Maven Kompilierung standardmäßig zu vermeiden, vergewissern Sie sich zunächst, dass die Konfiguration von Maven-Compiler-Plugin hat 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> 

Auch im Fall Ihr Maven-Profil verwendet maven-clean-plugin, dann entdeckt und löscht es standardmäßig die Verzeichnisse configur ed in project.build.directory, project.build.outputDirectory, project.build.testOutputDirectory und project.reporting.outputDirectory.

diesen Standard Bereinigungen zu deaktivieren, fügen Sie Maven-clean-Plugin-Konfiguration: excludeDefaultDirectories = true:

<excludeDefaultDirectories>true</excludeDefaultDirectories> 
Verwandte Themen