2016-08-07 48 views
2

Wie kann ich Ant verwenden, um eine einzelne ausführbare Datei zu erstellen .jar, die Abhängigkeit hat .jars drin in einem /lib Verzeichnis in der. glas?Wie kann ich Ant verwenden, um eine einzelne ausführbare JAR-Datei zu erstellen, die in einem/lib-Verzeichnis in der JAR-Datei Abhängigkeitsjar enthält?

Ich habe ein Verzeichnis /lib in der Projekt-Root-Datei, die alle binären Abhängigkeit enthält .jar s.

+0

Warum verwenden Sie nicht Maven oder Gradle anstelle von Ameisen? –

+0

Ok, klar, wie wäre das mit Maven? Vielen Dank – 65535

Antwort

0

in Java eine ausführbare jar hat eine speziell manifest formatiert, das umfasst die folgenden Attribute:

  1. Main-Klasse
  2. Class-Path

In ANT dies leicht erreicht wird wie folgt mit der jar Aufgabe:

<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}" includes="*.class"> 
    <manifest> 
     <attribute name="Main-Class" value="${main-class}" /> 
     <attribute name="Class-Path" value="${jar-classpath}" /> 
    </manifest> 
</jar> 

Für zusätzliche Gutschrift kann man die sehr nützliche Aufgabe manifestclasspath verwenden, um die korrekte Klassenpfad-Zeichenfolge zusammenzustellen.

<manifestclasspath property="jar-classpath" jarfile="${jar.dir}/${ant.project.name}.jar"> 
    <classpath> 
     <fileset dir="/path/to/lib/dir" includes="*.jar"/> 
    </classpath> 
</manifestclasspath>