Hallo allseits,
ich kämpfe schon einige Zeit mit folgendem Problem rum: Ich hätte gerne einen ANT-Script, der mein Auslieferungsverzeichnis .\dist möglichst "vollständig" befüllt. Das heisst also insbesonders auch alle für ein Projekt notwendigen JAR's hineinkopiert.
Ich hab in Eclipse diverse Libraries definiert, meinetwegen eine welche LOG4J heisst, und auf den psysikalischen Pfad \irgendwas\log4j.jar verweist. Diese Libraries werden in Eclipse über Projekt->Properties->Java Build Path->Librariers dem jeweiligen Projekt zugewiesen.
Um das jeweilige Projekt ausliefern zu können, hab ich einen ANT-Tasks, der mir das Projekt-JAR im 'dist'-Verzeichnis erzeugt, so weit so gut. Allerdings muss ich danach immer daran denken, alle weiteren JAR's die ich sonst noch benötige, händisch in dieses Verzeichnis zu kopieren.
Soweit ich weiss wäre der 'normale' Weg, alle benötigten JARs vorher in ein Verzeichnis Namens "lib" zu kopieren, den ClassPath nur auf dieses Verzeichnis zu setzen, dann hat man alles beinand. Nur geht das bei uns nicht so einfach, da sich div. JARs durch andere Abteilungen ändern/ausgetauscht werden.
Es muss doch auch einen Weg geben, auf den gerade aktuellen ClassPath zuzugreifen, und die benötigten JARs egal wo sie liegen in das DIST-Verzeichnis zu kopieren? Wie?
Hier ein Ausschnitt meines derzeitigen ANT-Scripts:
lg., nes
ich kämpfe schon einige Zeit mit folgendem Problem rum: Ich hätte gerne einen ANT-Script, der mein Auslieferungsverzeichnis .\dist möglichst "vollständig" befüllt. Das heisst also insbesonders auch alle für ein Projekt notwendigen JAR's hineinkopiert.
Ich hab in Eclipse diverse Libraries definiert, meinetwegen eine welche LOG4J heisst, und auf den psysikalischen Pfad \irgendwas\log4j.jar verweist. Diese Libraries werden in Eclipse über Projekt->Properties->Java Build Path->Librariers dem jeweiligen Projekt zugewiesen.
Um das jeweilige Projekt ausliefern zu können, hab ich einen ANT-Tasks, der mir das Projekt-JAR im 'dist'-Verzeichnis erzeugt, so weit so gut. Allerdings muss ich danach immer daran denken, alle weiteren JAR's die ich sonst noch benötige, händisch in dieses Verzeichnis zu kopieren.
Soweit ich weiss wäre der 'normale' Weg, alle benötigten JARs vorher in ein Verzeichnis Namens "lib" zu kopieren, den ClassPath nur auf dieses Verzeichnis zu setzen, dann hat man alles beinand. Nur geht das bei uns nicht so einfach, da sich div. JARs durch andere Abteilungen ändern/ausgetauscht werden.
Es muss doch auch einen Weg geben, auf den gerade aktuellen ClassPath zuzugreifen, und die benötigten JARs egal wo sie liegen in das DIST-Verzeichnis zu kopieren? Wie?
Hier ein Ausschnitt meines derzeitigen ANT-Scripts:
Code:
<target name="deploy" depends="init" description="generate the distribution">
<property name="dist" location="dist" />
<property name="build" location="bin" />
<property name="jarfile" location="${dist}/${ant.project.name}.jar" />
<!-- Create the distribution directory -->
<mkdir dir="${dist}/" />
<!-- copy all files from etc -->
<mkdir dir="${dist}/etc"/>
<copy todir="${dist}/etc" >
<fileset dir="${etc}"></fileset>
</copy>
<tstamp>
<format property="creationdate" pattern="yyyy-MM-dd HH:mm:ss" locale="de"
offset="1" unit="hour"/>
</tstamp>
<delete file="${jarfile}" />
<jar jarfile="${jarfile}"
basedir="${build}"
manifest="MANIFEST.MF">
</jar>
</target>
lg., nes