Apache Ant JAR Задача: не найти свойства - PullRequest
1 голос
/ 05 августа 2009

Как именно я должен указать расположение всех файлов свойств внутри манифеста 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 Ответ

2 голосов
/ 05 августа 2009

Вы можете удалить всю часть <manifest... - это не то, что делает атрибут манифеста Class-Path. Это для вещей вне JAR.

Строка <include name="server-config/*"/> должна работать - если каталог server-config находится внутри вашего каталога $ {build.home}. Вам, вероятно, нужна задача, чтобы скопировать их туда - вы упоминаете, что исходный код находится на том же уровне, но вы не упоминаете, где они скомпилированы в .

Пример -

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