Всем привет.
есть билд-файл
...
<property name="libdir" location="usepack"/>
<!-- в каталоге лежат библиотеки-->
...
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${build}"/>
<classpath>
<fileset dir="${libdir}" includes="*.jar"/>
</classpath>
</target>
...
теперь вопрос:
как в манифесте jar-таска указать Class-path: со всеми либами из ${libdir}?
<jar jarfile="${dist}/application.jar" basedir="${classes}">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Main-class" value="mypack.mainClass"/>
<attribute name="Class-Path" value=
^^^^^^^^^^^^^^?
т.е. если в каталоге mailpack штук 10 джаров, которые я легко могу указать в таксе javac. То как без поименного перечислению джаров указать их в манифесте?
Здравствуйте, blade2, Вы писали:
B>Всем привет.
B>есть билд-файл
B>...
B> <property name="libdir" location="usepack"/>
B> <!-- в каталоге лежат библиотеки-->
B>...
B> <target name="compile" depends="init">
B> <javac srcdir="${src}" destdir="${build}"/>
B> <classpath>
B> <fileset dir="${libdir}" includes="*.jar"/>
B> </classpath>
B> </target>
B>...
B>теперь вопрос:
B>как в манифесте jar-таска указать Class-path: со всеми либами из ${libdir}?
B> <jar jarfile="${dist}/application.jar" basedir="${classes}">
B> <manifest>
B> <attribute name="Built-By" value="${user.name}"/>
B> <attribute name="Main-class" value="mypack.mainClass"/>
B> <attribute name="Class-Path" value=
B> ^^^^^^^^^^^^^^?
B>т.е. если в каталоге mailpack штук 10 джаров, которые я легко могу указать в таксе javac. То как без поименного перечислению джаров указать их в манифесте?
идея примерно такая:
<path id="my.path">
<fileset dir="${libdir}" includes="*.jar"/>
</path>
<pathconvert pathsep=";" property="my.path.string" refid="my.path"/>
<echo>path:${my.path.string}</echo>
однако надо отлаживать — я просто от руки набросал, глядя на то, как это использую я для другой ситуации
Здравствуйте, C0s, Вы писали:
B>>теперь вопрос:
B>>как в манифесте jar-таска указать Class-path: со всеми либами из ${libdir}?
C0s>B>> <jar jarfile="${dist}/application.jar" basedir="${classes}">
B>> <manifest>
B>> <attribute name="Built-By" value="${user.name}"/>
B>> <attribute name="Main-class" value="mypack.mainClass"/>
B>> <attribute name="Class-Path" value=
B>> ^^^^^^^^^^^^^^?
C0s>
B>>т.е. если в каталоге mailpack штук 10 джаров, которые я легко могу указать в таксе javac. То как без поименного перечислению джаров указать их в манифесте?
C0s>идея примерно такая:
C0s>C0s> <path id="my.path">
C0s> <fileset dir="${libdir}" includes="*.jar"/>
C0s> </path>
C0s> <pathconvert pathsep=";" property="my.path.string" refid="my.path"/>
C0s> <echo>path:${my.path.string}</echo>
C0s>
C0s>однако надо отлаживать — я просто от руки набросал, глядя на то, как это использую я для другой ситуации
<pathconvert pathsep=" " property="my.path.string" refid="compile.classpath"/>
<echo>${my.path.string}</echo>
Output:
C:\mailpack\activation.jar C:\mailpack\bcmail-jdk14-124.jar C:\mailpack\bcprov-jdk14-124.jar ....
Что есесно не верно. Т.к. должны быть указаны относительные пути к бибилиотекам относительно главного джара, т.е.
activation.jar bcmail-jdk14-124.jar bcprov-jdk14-124.jar ....
Как в манифесте указать только библиотеки без путей к ним?
Здравствуйте, blade2, Вы писали:
B>Что есесно не верно. Т.к. должны быть указаны относительные пути к бибилиотекам относительно главного джара, т.е.
B>activation.jar bcmail-jdk14-124.jar bcprov-jdk14-124.jar ....
Кхе. Понимаю, что было давно. Просто сам столкнулся. Заюзал map
<pathconvert pathsep=";" property="my.path.string" refid="my.path">
<map from="${basedir}" to="."/>
</pathconvert>
в случае товарисча можно так
<pathconvert pathsep=";" property="my.path.string" refid="my.path">
<map from="${basedir}\lib\" to=""/>
</pathconvert>