我编写ant构建脚本。我需要创建符号链接,我找到了symlink任务。根据手册,它只在Unix系统上工作。如果有人在Windows平台上运行我的构建脚本会发生什么?构建失败吗?还是这个任务将在Windows平台上被忽略?或者在NTFS驱动器的情况下,它甚至可以工作吗?
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>
<condition property="isUnix">
<os family="unix"/>
</condition>
然后在我的目标对象上使用一个'if'属性,这样它只会在Unix上执行:
<target name="makeSymLinkToJar" depends="jar" if="isUnix">
<symlink link="${distlink.jar}" resource="${dist.jar}"/>
</target>
makeSymLinkToJar: [symlink] cygwin警告: [symlink] 发现MS-DOS风格的路径:C:\dev\mdr-svn\dist/mdr.jar [symlink] 首选的POSIX等效路径是:/cygdrive/c/dev/mdr-svn/dist/mdr.jar [symlink] CYGWIN环境变量选项“nodosfilewarning”关闭此警告。 [symlink] 有关POSIX路径的更多详细信息,请参阅用户指南: [symlink] http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
它创建了一个看起来像损坏的jar文件但可能是一个错误的符号链接的1k文件。不确定没有cygwin会发生什么。 - PeterVermont
tools.jar
部分吗?如果存在tools.jar
,会发生什么情况,它会使用一些 Java 代码来模拟 ln 吗? - Dmytro Zavalkin