2013-09-05 13 views

Odpowiedz

11

mvn clean usunie katalog target (a więc wszystkie znajdujące się w nim pliki). Jeśli chcesz usunąć tylko niektóre pliki z katalogu target, kombinacji:

  • excludeDefaultDirectories aby zatrzymać jej usunięcie całego katalogu, a

  • filesets powiedzieć to, co usunąć

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

21

zgadzam się z UWAGI Mateusza ns, ale odniosłem wrażenie, że oryginalny plakat pytał o automatyzację wykonywania clean podczas (normalnego) "wykonania" profilu.

Możesz zdefiniować plugin execution dla wtyczki Maven Clean. Zwykle jest to związane tylko z clean, ale definiując wykonanie wtyczki, możesz powiązać clean:clean (czyli cel clean wtyczki clean) z dowolnie wybraną wartością. Dokumentacja wtyczki Maven Clean ma an example, jak to zrobić. Dokumentacja ma także an example usuwanie dodatkowych plików. Scalone dwa wygląda tak:

<plugin> 
    <artifactId>maven-clean-plugin</artifactId> 
    <version>2.5</version> 
    <executions> 
     <execution> 
     <id>auto-clean</id> 
     <phase>initialize</phase> 
     <goals> 
      <goal>clean</goal> 
     </goals> 
     <configuration> 
     <filesets> 
      <fileset> 
       <directory>some/relative/path</directory> 
      </fileset> 
      </filesets> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
22

Mam rozwiązanie .. !!

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-antrun-plugin</artifactId> 
<version>1.7</version> 
<executions> 
    <execution> 
     <phase>test</phase> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     <configuration> 
      <tasks> 
       <delete> 
        <fileset dir="${project.build.outputDirectory}/resources" includes="*.xml" /> 
       </delete> 
      </tasks> 
     </configuration> 
    </execution> 
</executions> 
</plugin> 

odsyłającego - http://maven.apache.org/guides/mini/guide-building-for-different-environments.html

+0

Generalnie w Maven, to wolałbym deklaratywny rozwiązanie, nad właśnie kodowanie go (co dla wtyczek jak mrówki, Groovy itp.) pozwól ci to zrobić. –

2

dzięki powyższych odpowiedzi. W końcu doszedłem do czegoś takiego:

jeśli chcesz j Ust usuwaćkilka katalogi w folderze docelowym, trzeba stworzyć jakiś konstrukt takiego.
to na przykład usuwa tylko całą zawartość folderów:

  • target/rozpakować
  • GEN-external-apklibs

excludeDefaultDirectories pozwala n ot usuwać kompletny folder docelowy.
użyłem go do oczyszczenia folderu docelowego przed analizą kłaczków.

 <plugin> 
      <artifactId>maven-clean-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <id>Deleting all unnecessary files before lint analysis</id> 
        <phase>verify</phase> 
        <goals> 
         <goal>clean</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <excludeDefaultDirectories>true</excludeDefaultDirectories> 
       <filesets> 
        <fileset> 
         <directory>target/unpack</directory> 
         <followSymlinks>false</followSymlinks> 
         <excludes> 
          <exclude>*</exclude> 
         </excludes> 
        </fileset> 
        <fileset> 
         <directory>gen-external-apklibs</directory> 
         <followSymlinks>false</followSymlinks> 
         <excludes> 
          <exclude>*</exclude> 
         </excludes> 
        </fileset> 
       </filesets> 
       <verbose>true</verbose> 
      </configuration> 
     </plugin> 
4

Rozwiązanie z Apache Maven AntRun Plugin 1.8:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.8</version> 
    <executions> 
    <execution> 
     <phase>initialize</phase> 
     <goals> 
     <goal>run</goal> 
     </goals> 
     <configuration> 
     <target> 
      <delete 
      dir="${project.build.outputDirectory}/resources" 
      includeemptydirs="true"/> 
     </target> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
1

Potrzebowałem tylko kilka plików usuniętych z katalogu wyjściowego dodaje pracował dobrze dla mnie.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.8</version> 
    <executions> 
     <execution> 
      <phase>compile</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <tasks> 
        <delete file="${project.build.outputDirectory}/appContextLocal.xml" /> 
        <delete 
         file="${project.build.outputDirectory}/appContextServer.xml" /> 
       </tasks> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

ja też pomyślałem, że można uruchamiać żadnych komend mrówek tu wymienić co kiedykolwiek zadanie trzeba się pomiędzy <tasks> .... </tasks> i będzie działać.

Lista zadań mrówek, które można wykonać są here

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