2012-04-16 2 views
0

Iam build dmg file с помощью ant tool, но iam получает ошибку во время сборки, пожалуйста, помогите кому-нибудь в этом. Вот как я могу поместить ссылку build.xml, поскольку она содержит более 30000 символов, что не позволяет размещать вопрос, поэтому я отправил его в ссылке ниже, допустимо здесь и ошибка ударОшибка при сборке файла dmg

Build xml link (экстракт)

  ... 
      <copy todir="${mac.build.dir}/.background"> 
        <fileset file="${basedir}/build/installer/images/mac/dmgBackground.png"/> 
      </copy> 

      <symlink link="${mac.build.dir}/Applications" overwrite="true" resource="/Applications" /> 
      <echo message="Create tmp.dmg"/> 
      <exec executable="hdiutil" failonerror="true"> 
        <arg line="create -srcfolder '${mac.build.dir}' -volname '${mac.volname}' -fs HFS+ -fsargs '-c c=64,a=16,e=16' -format UDRW '${target}/tmp.dmg'"/> 
      </exec> 
      .... 

ошибка

BUILD FAILED D: \ DevProjects \ spark \ build \ build.xml: 761: Не удалось запустить ln: java.io.IOException: не удается запустить программу «ln»: CreateProcess error = 2, система не может найти указанный файл

я использовал скрипт для вызова создания DMG файл ant installer.mac

сделать IAM, ссылающегося правильную цель или неправильный. Пожалуйста, помогите.

ответ

2

Задача Ant symlink не работает в вариантах Windows.

См SO: Ant symlink task on windows (NTFS)

От Ant documentation:

Руководит символические ссылки на на базе Unix платформ. Может использоваться для создания отдельной ссылки, удаления ссылки, создания нескольких ссылок из файлов свойств или создания файлов свойств, описывающих ссылки в указанных каталогах. Существующие ссылки по умолчанию не перезаписываются.

... и ...

ОГРАНИЧЕНИЕ: Поскольку Java не имеет прямой поддержки для обработки симлинки эта задача богословов их, сравнивая канонические и абсолютные пути. В не-unix-системах это может вызвать ложные срабатывания. Кроме того, любая операционная система, на которой команда ln -s не является допустимой командой в командной строке, не сможет использовать action = «single» или action = «recreate». Действие = «запись» и действие = удаление должны по-прежнему работать. Наконец, отсутствие поддержки символических ссылок в Java означает, что все ссылки записаны как ссылки на имя канонического ресурса. Поэтому ссылка: ссылка -> подкаталог/реж /../ foo.bar будет записан в качестве ссылки = подкаталоге/foo.bar и восстановлен в качестве ссылки -> подкаталог/foo.bar


Что касается того, как это исправить, я сейчас не в своей глубине, поскольку раньше я никогда не делал DMG. Тем не менее, symlink является ссылкой на папку Applications, и может просто быть там, чтобы пользователь имел удобную ссылку для перетаскивания приложения для копирования в приложения. Таким образом, эта ссылка может быть не обязательно необходима. Если кто-нибудь может осветить этот свет, сделайте это.

+0

iam beginner in ant build tool, можете ли вы изменить, если это возможно, для smlink-тега – developer

+0

К сожалению, у меня закончился опыт - у вас есть Mac, чтобы попробовать DMG? Можете ли вы построить там DMG? См. Мое редактирование (выше) относительно возможного пропуска шага symlink. –

+0

проблема в том, что у меня нет Mac.Thanks Buddy для вашей помощи. Я попробую с вашими предложениями – developer