OVH Cloud OVH Cloud

ant et merger un jar

12 réponses
Avatar
yvon.thoravalNO-SPAM
j'ai une appli qui utilise un jar "hsqldb.jar", mon build.xml permet de
fabriquer le jar de l'appli "macave.jar" mais j'aimerais savoir s'il
existe une commande qui permettrait d'inclure, par ant, tous les classes
de "hsqldb.jar" de manière à n'utiliser plus qu'un seul jar ???

--
yt

2 réponses

1 2
Avatar
yvon.thoravalNO-SPAM
Frédéric Lachasse wrote:


Pourquoi "Class-Path: lib/macave.jar" dans le manifest?

<zipfileset dir="lib/hsqldb.jar" prefix="."/>
Ce n'est probablement pas ce que tu veux faire: cela met hsqldb.jar dans ton
jar comme une resource, alors que tu veux inclure les classes de hsqldb.jar
dans ton jar.


Autant pour moi, je n'ai pas pigé les explications sur le web...

Ce que tu veux est fait par <zipgroupfileset>.

Une autre possibilité est d'utiliser la library classworlds dans un uberjar.
Cela permet de packager une application former de plusieurs jars dans un
seul jar directement exécutable.

Voir http://classworlds.codehaus.org/uberjar.html
OK, ça a l'air très intéressant mais je vais d'abord finaliser avec ant.


--
yt

Avatar
yvon.thoravalNO-SPAM
Frédéric Lachasse wrote:

Ce que tu veux est fait par <zipgroupfileset>.


bon je m'y suis mis "pour de bon" :
<jar jarfile="lib/${app}" basedir="${dst}" update="true">
<manifest>
<attribute name ="Main-Class" value="yt.ui.MaCave"/>
<attribute name ="Class-Path" value="lib/macave.jar"/>
</manifest>
<zipgroupfileset dir="lib_bup" includes="hsqldb.jar">
<include name="**/*.properties"/>
<include name="**/*.class"/>
</zipgroupfileset>
</jar>

et ça roule avec un seul jar dans /lib...

reste plus qu'à rendre mon appli double-clickable, mais là je dois
changer mon arborescence (base de données)...
--
yt

1 2