在ant中创建classpath jar的配置列表

时间:2010-10-08 14:14:17

标签: java ant classpath

我在这样的蚂蚁任务中有一个罐子列表..

  <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 个答案:

答案 0 :(得分:1)

正如我的评论中所解释的,如果您使用Tanuki Service Wrapper for Java,则不必强制列出wrapper.conf中的所有jar,您只需指出包含所有JAR文件的路径: / p>

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
...

答案 1 :(得分:0)

在Ant中,您可以使用pathconvert task将路径集合转换为String。然后您可以在配置文件中使用它。它不会是您指定的确切格式,但它将采用适当的类路径格式,可以用于java命令。

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

要创建属性文件,请使用propertyfile任务:

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

答案 2 :(得分:0)

伊兰暗示了正确的方向。我使用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。