# ANt und Libaries



## Gast2 (14. Mrz 2009)

Hallo zusammen,

Ich habe mit Eclipse ein web project angelegt und habe als libary den Tomcat. Nun möchte ich mit ant meine klassen compilieren. Meine Frage ist muss ich den pfad zu meinen Tomcat libary im ant script "hard codiert" angeben... oder gibt es auch eine andere möglichkeit damit er die libary erkennt?
[HIGHLIGHT="xml"]
  <target name="compile">	
	<javac debug="true" failonerror="true" destdir="${destDir}" srcdir="${sourceDir}">
		<classpath>
			<fileset dir="C:/Tomcat/lib/" includes="*.jar" />
		</classpath>
		<include name="**/*.java"/>
	</javac>
  </target>
[/HIGHLIGHT]


----------



## Wildcard (14. Mrz 2009)

Kannst auch relative Pfade verwenden, oder automatisiertes Dependency-Management einsetzen (Buckminster, Maven, Ivy,..).


----------



## mvitz (15. Mrz 2009)

Und idealerweise den Pfad, dann in einem Property halten, damit, sollte sich am Pfad was ändern, dein Buildscript einfacher anzupassen ist.


----------



## Gast2 (15. Mrz 2009)

habi55 hat gesagt.:


> Und idealerweise den Pfad, dann in einem Property halten, damit, sollte sich am Pfad was ändern, dein Buildscript einfacher anzupassen ist.



Ja die ganzen Pfade sind in einer Property Datei, so war es schneller zu posten .

@Wildcard  Von ivy habe ich schon mal was gehört, aber noch nie benutzt, werd ich mir mal anschauen. Danke


----------



## mvitz (15. Mrz 2009)

Oki 

Ich mache es btw so, dass ich die nötigen Tomcat Libs, die ich brauche im Projekt habe (und somit auch unter Versionskontrolle). Man muss dann beim erstellen der war-Datei nur aufpassen, dass man diese nicht mit in den Lib Ordner packt, aber das geht schon, wenn man sein Projekt z.B. so strukturiert:

```
project
- ...
- lib
|- compile
|- runtime
- ...
```

Dann muss man nur die libs aus beiden Ordnern zum kompilieren benutzen und beim erstellen des Wars, werden nur die aus "runtime" mit einbezogen.

Hat vor allem auch den Vorteil, dass man dann auch ohne Tomcat installiert zu haben, dass gesamt Projekt bauen kann.


----------



## Gast2 (15. Mrz 2009)

ok das hört sich eigentlich ganz vernünftig an =)


----------



## Wildcard (15. Mrz 2009)

habi55s Variante is so lange valide, wie es sich um ein, oder wenige Projekte handelt. Sobald sich viele Projekte die gleichen Artifacts teilen, sollte man eher auf ein Artifact Repository zurückgreifen (oder die Public Maven/Eclipse Orbit Repositories verwenden, solange die Welt nicht untergeht wenn man mal nicht builden kann weil das Netzwerk streikt.)


----------

