2012-01-02 1 views
0

J'ai un projet mis en place comme ceci;Besoin d'aide pour construire build.xml pour Ant build de mon projet Java

Project 
    -src 
     -com 
      -top 
       -classes 
        Class_3.java 
        Class_4.java 
       -utils 
        Class_5.java 
        Class_6.java 
       Class_1.java 
       Class_2.java 
    -data 
     various files 
    -libs 
     lib_1.jar 
     lib_2.jar 
     lib_3.jar 
     lib_4.jar 
    build.xml 

class_1.java contient la classe principale, libs contient des dépendances externes, les données contient plusieurs images, fichiers texte, etc ...

Je suis en train d'écrire un fichier de construction Ant pour faire un JAR distribuable fichier mais je ai difficile de tirer dans toutes les bibliothèques requises etc ...

C'est où je suis à la hauteur.

<?xml version="1.0"?> 
<project name="Project" default="jar"> 

    <property name="libsSrc" value="libs"/> 
    <property name="build" value="build"/> 
    <property name="classes" value="build/classes"/> 
    <property name="jar" value="build/jar"/> 
    <property name="libs" value="build/libs"/> 

    <path id="classpath"> 
      <fileset dir="${libsSrc}" includes="*.jar"/> 
    </path> 

    <target name="clean" description="remove intermediate files"> 
     <delete dir="build"/> 
    </target> 

    <target name="compile" description="compile the Java source code to class files"> 
     <mkdir dir="${classes}"/> 
     <javac srcdir="." destdir="${classes}" classpathref="classpath"> 
      <compilerarg line="-encoding utf-8"/> 
     </javac> 
    </target> 

    <target name="jar" depends="compile" description="create a Jar file for the application"> 
     <mkdir dir="${jar}"/> 
     <jar destfile="${jar}/App.jar"> 
      <fileset dir="${classes}" includes="**/*.class"/> 
      <manifest> 
       <attribute name="Main-Class" value="com.top.Class_1"/> 
      </manifest> 
     </jar> 
    </target> 

</project> 

Ceci ne fonctionne pas actuellement.

Il compile sans erreur mais n'inclut pas les dépendances requises et le JAR ne peut pas trouver la classe principale. Comment puis-je le réparer?

+0

Quelle est la question? –

+0

Si vous modifiez est la réponse à votre question, alors postez-le comme une réponse (que vous pouvez accepter plus tard). Mais en réalité il n'y a pas de vraie question et vous voudrez peut-être supprimer tout cela. – oers

+0

Excuses, tous les commentaires adressés. – Neilos

Répondre

0
<?xml version="1.0"?> 
<project name="Rutherford" default="jar"> 

    <property name="libsSrc" value="libs"/> 
    <property name="build" value="build"/> 
    <property name="classes" value="build/classes"/> 
    <property name="jar" value="build/jar"/> 
    <property name="libs" value="build/libs"/> 

    <path id="classpath"> 
      <fileset dir="${libsSrc}" includes="*.jar"/> 
    </path> 

    <pathconvert property="mf.classpath" pathsep=" "> 
      <path refid="classpath"/> 
      <mapper> 
        <chainedmapper> 
          <flattenmapper/> 
          <globmapper from="*.jar" to="lib/*.jar"/> 
        </chainedmapper> 
      </mapper> 
    </pathconvert> 

    <target name="clean" description="remove intermediate files"> 
     <delete dir="build"/> 
    </target> 

    <target name="compile" description="compile the Java source code to class files"> 
     <mkdir dir="${classes}"/> 
     <javac srcdir="." destdir="${classes}" classpathref="classpath"> 
      <compilerarg line="-encoding utf-8"/> 
     </javac> 
    </target> 

    <target name="jar" depends="compile" description="create a Jar file for the application"> 
     <mkdir dir="${jar}"/> 
     <jar destfile="${jar}/App.jar"> 
      <zipgroupfileset dir="${libsSrc}" includes="*.jar"/> 
      <fileset dir="${classes}" includes="**/*.class"/> 
      <manifest> 
       <attribute name="Main-Class" value="com.top.Class_1"/> 
       <attribute name="Class-Path" value="${mf.classpath}"/> 
      </manifest> 
     </jar> 
    </target> 

</project> 

Semble faire l'affaire mais la ligne;

<compilerarg line="-encoding utf-8"/> 

semble ne rien faire, j'ai quelques fichiers texte contenant des caractères UTF-8 codés qui sont lus en chaînes et affichés qui ne sont pas correctement montre; dσ/dΩ montre comme dÃ/d ©. Je vais demander cela dans another question cependant.

+0

Je n'ai pas eu votre question, êtes-vous capable d'exécuter vos tâches de fourmi? que se passe-t-il lorsque vous exécutez "Ant compile" ?? –

+0

J'ai effectivement résolu tous les problèmes associés à cette question, j'ai édité (et peut-être en éditer d'autres) la question originale pour le rendre un peu plus clair. – Neilos

Questions connexes