如果有人在Windows(NTFS)上运行Ant符号链接任务会发生什么?

时间:2011-08-05 20:14:15

标签: windows ant symlink ntfs

我写了ant build脚本。我需要创建一个符号链接,然后找到symlink任务。根据手册,它只适用于Unix。如果有人在Windows平台上运行我的构建脚本会发生什么?构建会失败吗?或者在Windows平台上会忽略此任务?或者在NTFS驱动器的情况下,它甚至可以工作吗?

2 个答案:

答案 0 :(得分:3)

我正在运行Win7,我试过了。因为我有Mingw安装它使用ln。 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 :(得分:1)

我创建了一个条件属性来识别我是否在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>