Что произойдет, если кто-то запустит задачу Ant symlink в Windows (NTFS)? - PullRequest
4 голосов
/ 06 августа 2011

Я пишу скрипт сборки муравья.Мне нужно создать символическую ссылку, и я нашел задачу symlink .Согласно инструкции, она работает только на Unix.Что произойдет, если кто-нибудь запустит мой скрипт сборки на платформе Windows?Будет ли строить сбой?Или эта задача будет игнорироваться на платформе Windows?Или в случае с NTFS-диском он вообще будет работать?

Ответы [ 2 ]

3 голосов
/ 06 августа 2011

Я использую Win7 и попробовал.Так как я установил Mingw, он использовал ln.Казалось, просто скопировать все.Так как в обычной установке Windows нет ln, он не сможет работать там.

Вот что происходит без ln:

C:\Users\Janus\Desktop>.\apache-ant-1.8.2\bin\ant
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: C:\Users\Janus\Desktop\build.xml

dist:

BUILD FAILED
C:\Users\Janus\Desktop\build.xml:3: Could not launch ln: java.io.IOException: Cannot run program "ln": CreateProcess error=2, The system can
not find the file specified

Total time: 1 second

C:\Users\Janus\Desktop>

Build.xml:

<project name="MyProject" default="dist" basedir=".">
<target name="dist">
<symlink link="lol" resource="d3dwindower" />
</target>
</project>
1 голос
/ 31 января 2014

Я создал свойство условия, чтобы определить, работаю ли я в Unix:

<condition property="isUnix">
  <os family="unix"/>
</condition>

, а затем используйте атрибут 'if' на моей цели, чтобы он выполнялся только в unix:

<target name="makeSymLinkToJar" depends="jar" if="isUnix">
    <symlink link="${distlink.jar}" resource="${dist.jar}"/>
</target>
...