Ant - Libraries in Runnable jar files
bonjour,
J'avoue être un peu bloqué depuis 1H car je ne comprends pas pourquoi mes librairies ne se package pas avec mon fichier jar. Et forcément cela pose problème à l'execution car les libs ne sont pas présente.
Voici mon fichier build.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| <?xml version="1.0" encoding="UTF-8"?>
<project name="Dta" basedir="." default="exportDta">
<echo message="**************************************** " />
<echo message="* DTA Compile And Export script " />
<echo message="* ANT Version : ${ant.version} " />
<echo message="**************************************** " />
<target name="init" description="Initialize build">
<property name="dta.root.dir" value="${basedir}" />
<property name="dta.src.dir" value="${dta.root.dir}\src" />
<property name="dta.lib.dir" value="${dta.root.dir}\lib" />
<property name="dta.bin.dir" value="${dta.root.dir}\bin" />
<property name="output.jar.dir" value="${basedir}" />
</target>
<target name="clean" depends="init" description="Removes all generated files">
<delete dir="${dta.bin.dir}" />
</target>
<path id="dta-classpath">
<fileset dir="${basedir}\lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="copy-non-java-files">
<copy todir="${dta.bin.dir}" includeemptydirs="false">
<fileset dir="${dta.src.dir}" excludes="**/*.java" />
</copy>
</target>
<target name="compile" depends="init, clean, copy-non-java-files">
<javac srcdir="${dta.src.dir}" destdir="${dta.bin.dir}" classpathref="dta-classpath" debug="true" />
</target>
<pathconvert property="lib.dta.manifest.classpath"
pathsep=" ">
<path refid="dta-classpath"/>
<flattenmapper/>
</pathconvert>
<target name="exportDta" depends="compile">
<echo message="* ${lib.dta.manifest.classpath} " />
<jar jarfile="${output.jar.dir}\test.jar" basedir="${dta.bin.dir}" includes="**\*">
<manifest>
<attribute name="Main-Class" value="dta.core.Launcher"/>
<attribute name="Class-Path" value=". ${lib.dta.manifest.classpath}" />
<!--
<attribute name="Class-Path" value="${lib.dta.manifest.classpath}" />
-->
</manifest>
</jar>
</target>
<target name="exportDtaClient">
<!-- <jar jarfile="${output.jar.dir}/DtaClient.jar" basedir="${project.bin.dir}" /> -->
</target>
<target name="exportDtaServer">
<!-- <jar jarfile="${output.jar.dir}/DtaServerJar.jar" basedir="${project.bin.dir}" /> -->
</target>
</project> |
Le problème je crois c'est qu'il manque ceci :
Code:
1 2 3 4 5 6 7
| <zipfileset src="jar-in-jar-loader.zip"/>
<fileset dir="bin"/>
<zipfileset dir="lib" includes="jdom.jar"/>
<zipfileset dir="lib" includes="log4j-1.2.17.jar"/> |
Mais j'aimerais automatiser ces lignes car je n'ai pas envie de reconfigurer à chaque fois le fichier dès que j'ajoute une lib.
Est-ce que vous avez une solution sous la main pour inclure mes jars lib dans mon jar executable ?
D'avance merci