Apache Ant JAR任务:找不到属性

时间:2009-08-05 15:55:07

标签: spring ant jar log4j manifest

我应该如何指定ant清单中所有属性文件的位置?

我的jar无法正常工作,因为它无法找到log4j,Spring等属性。

这些文件都包含在名为“server-config”的文件夹中,该文件夹与源代码位于同一级别,即:

  • META-INF
  • 玉米
  • 服务器配置

基本上,我想知道我需要添加到Class-Path属性中,以便jar知道server-config文件夹中的所有这些属性文件。

这是我目前的任务:

<jar destfile="${root.home}/onejar/build/main/main.jar" basedir="${build.home}">
        <manifest>
            <attribute name="Class-Path" value=".;server-config" />
        </manifest>
        <include name="com/mycompany/client/*"/>
        <include name="com/mycompany/portable/util/*"/>
        <include name="com/mycompany/request/*"/>
        <include name="com/mycompany/model/*"/>
        <include name="com/mycompany/controller/*"/>
        <include name="com/mycompany/helpers/*"/>
        <include name="server-config/*"/>
    </jar>

我已经尝试过一些东西,但没有一个正在工作,由于找不到文件,我一直在收到错误。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

您可以删除整个<manifest...部分 - 这不是Class-Path清单属性的作用。 It's for things external to the JAR.

如果server-config目录存在于$ {build.home}目录中,那么行<include name="server-config/*"/> 工作。您可能需要在其中复制它们的任务 - 您提到源代码位于同一级别,但您没有提到它们编译为的位置。

一个例子 -

<mkdir dir="${build.dir}/server-config"
<copy todir="${build.dir}/server-config">
  <fileset dir="${src.dir}/server-config">
    <include name="*"/>
  </fileset>
</copy>