IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ANT Java Discussion :

Inclusion d'un jar pour faire un jar


Sujet :

ANT Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 74
    Points
    74
    Par défaut Inclusion d'un jar pour faire un jar
    Bonjour.

    J'ai un petit projet qui se compose d'un certain nombre de quelques fichiers java.
    Ce projet utilise l'API Jdom.

    API qui se résume pour moi à un jar : jdom.jar.

    J'aimerais construire un jar de mon application avec ant.
    Voici mon build.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <project name="Agenda" default="run" basedir=".">
     
    	<property name="Sources" value="Sources"/>
    	<property name="Classes" value="Classes"/>
    	<property name="Final"	 value="Final"/>
    	<property name="Javadoc" value="Documentation/Javadoc" />
     
    	<target name="prepare">
    		<tstamp/>
    		<mkdir dir="${Classes}"/>
    		<mkdir dir="${Sources}"/>
    		<mkdir dir="${Final}"/>
    		<mkdir dir="${Javadoc}"/>
     
    	</target>
     
     
    	<target name="run" depends="compile">
    		<echo message="Execution du programme"/>
    		<java classpath="${Sources}/" jar="${Final}/GestionnaireAgenda.jar" fork="yes"/>
    	</target>
     
    	<target name="compile" depends="prepare">
    		<echo message="Compilation des classes Java"/>
    		<javac srcdir="${Sources}" destdir="${Classes}"/>
    		<jar jarfile="${Final}/GestionnaireAgenda.jar" 
    			manifest="${Sources}/GAgenda.mf" basedir="${Classes}"/>
    	</target>
     
    	<target name="clean">
    		<echo message="Suppression des fichiers produits"/>
    		<delete dir="${Classes}"/>
    		<delete dir="${Final}"/>
    		<delete dir="${Javadoc}"/>
    	</target>
     
    	<target name="doc">
    		<echo message="Generation de la documentation"/>
    		<javadoc sourcefiles="${Sources}/" destdir="${Javadoc}/" private="true"/>
    	</target>
    </project>
    Que dois-je ajouter pour qu'il prenne en compte le jar de jdom, car pour l'instant il me met une tripotée d'erreur qui me signale qu'il ne le trouve pas.

    Mon arborescence :

    +Projet
    |--+build.xml
    |--+Sources
    |--+Documentation
    |---|---+Javadoc
    |--+jdom
    |------+jdom.jar
    |---+Final
    |-------+MonAppli.jar(celui que je veux obtenir)
    |----+Classes


    Et en passant, comment modifier ma target doc pour qu'elle me fasse la documentation correctement parce que pour l'instant çà me dit qu'il n'y a aucun package de définit, hors j'en veux pas de package.


    Merci déjà.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Points : 794
    Points
    794
    Par défaut
    Bonjour,

    La solution consiste a ajouter la librairie jdom dans ton classpath.
    Pour des raisons de conventions, il est plus logique de mettre ta bibiothèque jdom.jar non pas un répertoire nommée jdom mais un répertoire nommée lib.
    Il te sera possible d'avoir d'autres bibiliothèques dans le futur.

    Une fois que cette étape est réalisé, ajoute ceci au début de ton fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        <property name="lib.dir"   value="lib" />
        <path id="lib.path.id">
            <fileset dir="${lib.dir}" />
        </path>
    Modifie ton appel de ta task de compilation comme celui-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <javac srcdir="${Sources}" destdir="${Classes}" classpathref="lib.path.id"/>
    Pour la génération de la javadoc, rajoute ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <javadoc sourcepath="${Sources}\src\main\java" destdir="${Javadoc}/" private="true" classpathref="lib.path.id" packagenames="com.mycompagny.*"/>
    --
    Gregory

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Points : 74
    Points
    74
    Par défaut
    Merci beaucoup, j'ai finalement fini par trouver le bon truc et effectivement ta solution marche très bien.

    Yahou


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Inclusion d'un fichier properties dans un jar avec la commande jar
    Par Lolitaaa dans le forum Général Java
    Réponses: 3
    Dernier message: 15/12/2009, 14h17
  2. Réponses: 0
    Dernier message: 12/09/2009, 16h27
  3. Réponses: 4
    Dernier message: 24/11/2006, 17h01
  4. [JAR] Pb pour faire un jar sous Eclipse
    Par Yannick_from_31 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/04/2006, 21h27
  5. [Débutant] Faire un .jar
    Par MASSAKA dans le forum Eclipse Java
    Réponses: 26
    Dernier message: 01/06/2004, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo