在 ant 中创建类路径 jar 的配置列表

发布于 2024-09-26 15:50:35 字数 478 浏览 2 评论 0原文

我在像这样的 ant 任务中有一个 jar 列表..

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

我如何在 ant 中执行此操作?

I have a list of jars in an ant task like this..

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

I want to unroll this into a config file like this..

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

How can I do this in ant?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

没有伤那来痛 2024-10-03 15:50:35

正如我的评论中所解释的,如果您使用 Tanuki Service Wrapper for Java,您不必列出所有您的在 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
...

As explained in my comment, if you are using Tanuki Service Wrapper for Java, you are not forced to list all your jar in the wrapper.conf, you can simply indicate a path that contains all your JAR files:

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
...
一梦浮鱼 2024-10-03 15:50:35

在 Ant 中,您可以使用 pathconvert 任务 将路径集合转换为细绳。然后您可以在配置文件中使用它。它不会采用您指定的确切格式,但它将采用正确的类路径格式,可供 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>

In Ant you can use the pathconvert task in order to convert the path collection to a String. Then you can use it in your config file. It won't be in the exact format you specified, but it will be in a proper classpath format, ready to use for a java command.

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

To create a properties file use the propertyfile task:

<propertyfile file="my.properties">
  <entry  key="wrapper.java.classpath" value="${wrapper.java.classpath}"/>
</propertyfile>
忘年祭陌 2024-10-03 15:50:35

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

Eran hinted the right direction. I am using the ant.library.dir as an example.

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

This snippet procudes an file 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

...

You can replace the .Number and the Basepath manually or with a script.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文