Создание списка конфигурации jar-файлов classpath в ant - PullRequest
0 голосов
/ 08 октября 2010

У меня есть список банок в задаче муравья, как это ..

  <path id="lib.path.id">
    <fileset dir="${lib.dir}">
      <include name="jar/*.jar"/>
    </fileset>
  </path>

Я хочу развернуть это в файл конфигурации, как это ..

wrapper.java.classpath.1=../lib/activation.jar
wrapper.java.classpath.2=../lib/bcel.jar
wrapper.java.classpath.3=../lib/c3p0-0.8.4.5.jar
wrapper.java.classpath.4=../lib/cglib-full-2.0.2.jar
....

Как можноЯ делаю это в муравье?

Ответы [ 3 ]

1 голос
/ 14 октября 2010

Как объяснено в моем комментарии, если вы используете Tanuki Service Wrapper для Java , вы не обязаны перечислять все свои jar в wrapper.conf, вы можете просто указать путь, который содержит все вашиJAR-файлы:

wrapper.java.classpath.1=/path/to/lib/*.jar
wrapper.java.classpath.2=/any/other/lib/directory/*.jar
wrapper.java.classpath.3=/a/path/to/one/library/my-library.jar
...
0 голосов
/ 20 октября 2010

Эран намекнул в правильном направлении.В качестве примера я использую файл ant.library.dir.

<project name="util">

<property name="lib.dir" value="${ant.library.dir}"/>

<target name="gen-property-file" description="">

    <path id="lib.path.id">
        <fileset dir="${lib.dir}">
            <include name="*.jar"/>
        </fileset>
    </path>

    <pathconvert pathsep="${line.separator}wrapper.java.classpath.Number="             
        property="echo.path.compile"             
        refid="lib.path.id">
    </pathconvert>

    <echo file="my.properties">wrapper.java.classpath.Number=${echo.path.compile}</echo>

</target>

Этот фрагмент кода обрабатывает файл my.properties:

wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-antlr.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-bcel.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-bsf.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-log4j.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-oro.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-regexp.jar
wrapper.java.classpath.Number=D:\Programme\eclipse-rcp-helios-SR1-win32

...

Вы можете заменить .Number и Basepath вручную или сценарием.

0 голосов
/ 08 октября 2010

В Ant вы можете использовать задачу pathconvert , чтобы преобразовать коллекцию путей в строку.Затем вы можете использовать его в своем конфигурационном файле.Он будет не в том формате, который вы указали, но будет в правильном формате classpath, готовом к использованию для команды java.

<pathconvert targetos="unix" property="wrapper.java.classpath" refid="lib.path.id"/>

Для создания файла свойств используйте файл свойств задача:

<propertyfile file="my.properties">
  <entry  key="wrapper.java.classpath" value="${wrapper.java.classpath}"/>
</propertyfile>
...