2011-05-17 5 views
4

Possible en double:
Clean way to combine multiple jars? Preferably using Antclasses Extrait Ant Into pot

Quand exporter un fichier jar d'éclipser l'une des options que je reçois est d'extraire les fichiers de classe de pots de dépendance en mon dernier pot (d'autres options incluent d'emballer les pots dans mon dernier pot ou tout simplement laisser tout en dehors de mon pot final). Il y a bien sûr un avertissement concernant les problèmes de licence.

Alors voici la question - quel est l'équivalent de cela dans la fourmi apache? Comment puis-je créer des classes d'extraction de fourmis à partir de pots dont dépend mon programme et les réemballer dans mon pot final?

+0

Peut-être que cela pourrait aider: http://stackoverflow.com/questions/515428/clean-way-to-combine-multiple-jars-preferably-using-ant Fabrizio –

Répondre

0

Essayez quelque chose comme ceci:

<?xml version="1.0"?> 
<project name="blah" basedir="." default="jar"> 
<target name="init"> 
    <property name="build" value="./build" /> 
    <property name="srcdir" value="./src" /> 
    <property name="lib.dir" value="./lib" /> 
    <property name="dist" value="./dist" /> 
    <property name="docs" value="./docs" /> 
    <property name="debug" value="true" /> 
    <path id="project.class.path"> 
    <pathelement path="${java.class.path}" /> 
    <fileset dir="${lib.dir}"> 
     <include name="*.jar" /> 
    </fileset> 
    </path> 
</target> 
<target name="compile" depends="init"> 
    <mkdir dir="${build}" /> 
    <javac debug="${debug}" 
      optimize="${optimize}" 
      destdir="${build}" 
      deprecation="${deprecation}" 
      source="1.6" target="1.6"> 
    <src path="${srcdir}" /> 
    <classpath refid="project.class.path" /> 
    </javac> 
</target> 
<target name="jar" depends="compile"> 
    <mkdir dir="${dist}" /> 
    <jar destfile="${dist}/${ant.project.name}.jar"> 
    <fileset dir="${build}"> 
     <include name="com/blah/blah/*.class" /> 
    </fileset> 
    </jar> 
</target> 
<target name="package" depends="compile, jar"> 
    <jar destfile="${dist}/${ant.project.name}-release.jar" basedir="${build}" includes="**/*.*"> 
    <manifest> 
     <attribute name="Main-Class" value="com.blah.blah.Main" /> 
    </manifest> 
    <zipgroupfileset dir="${lib.dir}" includes="*.jar" /> 
    <zipgroupfileset dir="${dist}" includes="${ant.project.name}.jar" /> 
    </jar> 
</target> 
</project> 

alors vous allez:

ant package

Pour générer un fichier jar avec toutes les classes dans le dossier lib.

Questions connexes