38 votes

générer des pots avec du code source en utilisant Ant

J'utilise ant pour créer des fichiers .jar dans Eclipse.

J'ai besoin de générer un bocal pour mon projet qui contient également du code source avec le fichier de classe. Comment faisons-nous ça?

Une autre question: qu'est-ce qu'un pot de débogage et comment le créer en utilisant ant ? (j'en ai entendu parler quelque part et j'essaie de les relier tous les deux)

67voto

Kevin Stembridge Points 3613

Je modifierais votre tâche jar pour inclure plusieurs ensembles de fichiers; un pour les classes et un pour les fichiers source.

 <jar destfile="${target.dir}/my-app.jar">
    <fileset dir="${target.dir}/classes" />
    <fileset dir="${src.dir}" includes="**/*.java"/>
</jar>
 

L'emballage doit être traité comme une préoccupation distincte de la compilation. Cela vous donnera plus de flexibilité. Par exemple, vous souhaiterez peut-être ajouter d'autres ensembles de fichiers au fichier jar (par exemple, les fichiers de propriétés) ou vous pouvez regrouper vos sources dans un fichier jar distinct de vos fichiers de classe.

4voto

Brandon Tilley Points 49142

Copiez simplement les fichiers source dans le répertoire que vous utilisez pour la création de votre pot. Je l'ai fait comme ça (remarquez le copy intérieur de compile ):

 <?xml version="1.0" encoding="utf-8" ?>
<project name="project" default="jar" basedir=".">

    <target name="compile" description="Compile source">
        <mkdir dir="bin" />
        <javac srcdir="src" includes="**" destdir="bin" (other compilation stuff here) />
        <copy todir="bin">
            <fileset dir="src" />
        </copy>
    </target>

    <target name="jar" description="Package into JAR" depends="compile">
        <jar destfile="project.jar" basedir="bin" compress="true" />
    </target>
</project>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X