Ant Frage zu manifest-class-path mit Target jar

AlexSpritze

Bekanntes Mitglied
Hallo,

wenn ich folgendes Target habe:

[XML]<target name="deploy-all" depends="build-all">
<jar destfile="${dist}/${jar.file}" basedir="${build}">
<include name="**/*.class" />
<manifest>
<attribute name="Class-Path" value="lib\${sf.core} lib\${sf.beans} lib\${ap.logging}" />
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
</jar>
</target>[/XML]

muss ich mit dem Manifest-Attribute ja angeben, wo die Bibliotheken sind, die die JAR benutzen wird. Gibt es dafür etwas kürzeres? Wenn ich 1000 JARs als Bibliotheken benutzen will muss ich die doch einzeln angeben oder?

Zumindest habe ich gelesen, dass es nicht funktioniert, wenn man dem Target java beim Ausführen einer JAR einen classpath mitgibt, der soll ja in dem Manifest angegeben werden. Geht das auch einfacher?

Gruß
 
z.B. so:

[XML]
<target name="deploy-all" depends="build-all">
<path id="class.path">
<fileset dir="${basedir}/lib" >
<include name="**/*.jar"/>
</fileset>
</path>
<pathconvert property="class-path" dirsep="/" pathsep=" " refid="class.path">
<map from="${basedir}/lib" to="lib" />
</pathconvert>
<jar destfile="${dist}/${jar.file}" basedir="${build}">
<include name="**/*.class" />
<manifest>
<attribute name="Class-Path" value="${class-path}" />
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
</jar>
</target>[/XML]
 

Neue Themen


Zurück
Oben