2010-09-02 14 views
19

Ich habe ein Projekt mit 2 Profilen, weil UAT und PROD verschiedene Versionen des gleichen Glases verwenden.Force Maven sauber

Ich habe festgestellt, dass, wenn ich nicht explizit mvn clean ... aufrufen, die bereitgestellte EAR BEIDE UAT und PROD Gläser haben wird.

Gibt es einen Weg in der POM zu spezifizieren, dass Maven immer vor jedem Gebäude reinigen sollte?

Antwort

44

Verwenden Sie die maven-clean-plugin mit der initialize Phase wie hier gegeben

http://maven.apache.org/plugins/maven-clean-plugin/usage.html

<project> 
    [...] 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-clean-plugin</artifactId> 
     <version>2.4.1</version> 
     <executions> 
      <execution> 
      <id>auto-clean</id> 
      <phase>initialize</phase> 
      <goals> 
       <goal>clean</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    [...] 
</project> 
+0

Ausgezeichnete Antwort (+1) –

0

Bitte lesen Sie the maven lifecycle vor allem den Lebenszyklus des Pakets.

Das maven clean Plugin, das Sie verwenden, wird Ihnen wahrscheinlich erlauben, ein sauberes Ziel zu einem bestimmten Zeitpunkt zu definieren. Sie können auch zum Beispiel ausführen mvn sauber -P Profil installieren

+2

Ich bin derzeit manuell das saubere Ziel in der Befehlszeile angeben, da wir von Maven auf PROD bereitstellen können, vergessen 'clean' kann unbestimmtes Verhalten verursachen. – n002213f

4

Sicher. Besuchen Sie die Maven clean plugin usage page, sie bieten ein Beispiel, wie das Plugin automatisch während des Builds ausgeführt wird.