# Maven clean anpassen



## rtt (5. Feb 2009)

Hallo,
ich wollte gern mein Maven so anpassen, das beim Ausführen von "mvn clean" den src Ordner im target Ordner nicht löscht. Nachdem ich etwas gegoggelt habe kann man dies mit foldenden Einstellungen im pom.xml des Projekts machen:

```
<plugin>
        		<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-clean-plugin</artifactId>			    
			     <configuration>			      
			      <filesets>
			        <fileset>			          
			          <directory>${basedir}/target/src</directory>			          
			          <excludes>
			          	<exclude>**/*.java</exclude>
			          </excludes> 
			          <followSymlinks>false</followSymlinks>
			        </fileset>
			      </filesets>
			    </configuration> 
			</plugin>
```

Leider wird immer noch der ganze target Ordner gelöscht.

Weiß jemand, was an meinen Einstellungen nicht stimmt, oder ob ich noch etwas anderes angeben muss?

Danke für die Hilfe schonmal.

Schöne Grüße
Robin


----------



## maki (5. Feb 2009)

Nicht sicher ob das überhaupt geht, schliesslich heisst es in der Doku:


> clean:clean 	Goal which cleans the build.
> 
> This attempts to clean a project's working directory of the files that were generated at build-time. By default, it discovers and deletes the directories configured in project.build.directory, project.build.outputDirectory, project.build.testOutputDirectory, and project.reporting.outputDirectory.
> 
> *Files outside the default may also be included in the deletion by configuring the filesets tag.*


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



> *The Maven Clean Plugin will delete the target directory by default.* You may configure it to delete *additional* directories and files. The following example shows how:
> ...


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

Wozu braucht man so etwas eigentlich?
Das target ist per definition abkömmlich, es soll ja schliesslich erstellt werden.

Ps: Noch was: http://jira.codehaus.org/browse/MCLEAN-38

Pps: Ok, habs gefunden, musst excludeDefaultDirectories uf true setzen:
http://maven.apache.org/plugins/maven-clean-plugin/clean-mojo.html


----------



## rtt (6. Feb 2009)

Hallo Maki,
danke für deine Antwort. Der Grund warum wir das machen wollten, war, weil wir ein AndroMDA Setup haben und nun ein weiteres Modul implementieren, welches nicht auf AndroMDA aufsetzt. Nun hatten wir einige Interfaces im target/src, welche nicht gelöscht werden sollten.

Ich hab deinen Tip mit dem excludeDefaultDirectories mal ausprobiert, was leider bei uns nicht geklappt hat.

Wir haben nun unsere Struktur geändert und die interfaces nicht mehr im target Verzeichnis liegen.

Danke und schöne Grüße 
Robin


----------



## maki (6. Feb 2009)

> Ich hab deinen Tip mit dem excludeDefaultDirectories mal ausprobiert, was leider bei uns nicht geklappt hat.


Gib mal die Version des Plugins an (zB. 2.3).
Sollte man übrigens immer machen, am besten nutzt man das pluginManagement in der Parent POM.

Ansonsten sollte man beim einstellen/debuggen verbose auf true setzen und maven mit dem -X Parameter starten, dann sieht man mehr, könnte helfen.


----------

