1

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

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

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

  • 元信息
  • com
  • 服务器配置

本质上,我想知道我需要向 jar 的 Class-Path 属性添加什么,以了解 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>

我已经尝试了一些东西,但它们都没有工作,由于找不到文件,我不断收到错误。

任何帮助将不胜感激!

4

1 回答 1

2

您可以删除整个<manifest...部分 - 这不是 Class-Path 清单属性所做的。它用于 JAR 外部的东西。

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

一个例子 -

<mkdir dir="${build.dir}/server-config"
<copy todir="${build.dir}/server-config">
  <fileset dir="${src.dir}/server-config">
    <include name="*"/>
  </fileset>
</copy>
于 2009-08-05T16:14:32.170 回答