# Ant-Tasks in Maven einbinden



## JBenutzername (29. Apr 2009)

Hallo zusammen,

ich möchte in Maven ein bestehendes Ant-Task einbauen:


```
<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.3</version>
				<executions>
					<execution>
						<phase>clean</phase>
						<configuration>
							<taskdef name="abc" classname="de.xxx.ABC"
								classpathref="maven.plugin.classpath" />
							<abc path="${basedir}/src/main/java" commentFile="${basedir}/header.txt" />
						</configuration>
						<goals>
							<goal>clean</goal>
						</goals>
					</execution>
				</executions>
				<dependencies>
					<dependency>
						<groupId>commons-io</groupId>
						<artifactId>commons-io</artifactId>
						<version>1.4</version>
					</dependency>
					<dependency>
						<groupId>ant-commenter</groupId>
						<artifactId>ant-commenter</artifactId>
						<version>1.0</version>
						<scope>system</scope>
						<systemPath>${basedir}/lib/xxx.jar</systemPath>
					</dependency>
				</dependencies>
			</plugin>
```

Ich bekomme dann aber leider die folgende Fehlermeldung:

```
Error message: Mojo: clean does not exist in plugin: org.apache.maven.plugins:maven-antrun-plugin:1.3.
Root error message: Mojo: clean does not exist in plugin: org.apache.maven.plugins:maven-antrun-plugin:1.3.
```

Was mache ich da falsch?


----------



## maki (29. Apr 2009)

Steht doch da, du versuchst das goal "clean" aufzurufen, welches für das antrun plugin aber nicht existiert, das goal "run" wäre das richtige.


----------



## JBenutzername (29. Apr 2009)

Das werde ich morgen mal ausprobieren, aber ich glaube mit "run" bekomme ich eine andere Fehlermeldung.


----------



## JBenutzername (30. Apr 2009)

So, jetzt hab ich es geschafft. Da hat noch ein "tasks"-Element gefehlt. Allerdings läuft das nur über die Konsole und nicht in Eclipse.


----------



## maki (30. Apr 2009)

Welches Eclipse Plugin nutzt du?


----------



## JBenutzername (30. Apr 2009)

Ich benutze m2eclipse 0.9.7.200902090947.


----------



## maki (4. Mai 2009)

Was genau geht denn nicht in Eclipse?
Welches goal führst du aus?


----------



## JBenutzername (6. Mai 2009)

Der Ant-Task wird bei "clean" mit dem Goal "run" ausgeführt.


----------



## maki (7. Mai 2009)

JBenutzername hat gesagt.:


> Der Ant-Task wird bei "clean" mit dem Goal "run" ausgeführt.


Und wenn du mvn clean in eclipse aufrufst, muss er den Ant Task auch starten, zumindest macht er das bei mir


----------



## JBenutzername (7. Mai 2009)

maki hat gesagt.:


> Und wenn du mvn clean in eclipse aufrufst, muss er den Ant Task auch starten, zumindest macht er das bei mir



Bei mir leider nicht.


----------



## JBenutzername (8. Mai 2009)

Genauer gesagt bekomme ich innerhalb von Eclipse folgende Fehlermeldung:


```
[ERROR] 

The following mojo encountered an error while executing:
Group-Id: org.apache.maven.plugins
Artifact-Id: maven-antrun-plugin
Version: 1.3
Mojo: run
brought in via: POM

While building project:
Group-Id: de.xx
Artifact-Id: xxxx
Version: 1.0
From file: /home/xxx/workspace/xx/pom.xml
Reason: An Ant BuildException has occured: taskdef class de.xx.Something cannot be found
```

In der Konsole (mvn clean) geht das ohne Probleme.


----------



## maki (11. Mai 2009)

Hast deinen eigenen Ant-Task denn du aufrufst?
Ist er denn im CP?


----------



## JBenutzername (12. Mai 2009)

Ich binde den Task per taskdef ein. Die Jar-Datei liegt ist in Eclipse zum Buildpath hinzugefügt.


----------



## maki (13. Mai 2009)

JBenutzername hat gesagt.:


> Ich binde den Task per taskdef ein. Die Jar-Datei liegt ist in Eclipse zum Buildpath hinzugefügt.


Tja, Maven muss die Jar auch kennen und zum CP hinzufügen.

Mit Maven2 ist dass ein bisschen so wie in Matrix, Eclipse existiert nicht wirklich, du musst dich selbst verbiegen 

Wenn Maven die jar als Dependency kennt, reicht das, dann weiss Eclipse automatisch davon.


----------

