Ant zip任务会丢失符号link?

Ant zip task will lost symbolic link?

我使用以下任务将文件夹压缩为 zip 文件。但是我发现解压zip文件时文件夹中的符号链接丢失了。

<zip destfile="${file.path}">
             <fileset dir="/tmp"/>
</zip>

例如,以前,文件如下所示。

lrwxrwxrwx 1 xxxx xxxx        25 Mar 15 21:02 libboost_atomic.so -> libboost_atomic.so.1.57.0
-rwxr-xr-x 1 xxxx xxxx      9135 Feb  8 04:46 libboost_atomic.so.1.57.0

我用Ant压缩了文件夹并解压后,它看起来像下面。

-rw-r--r-- 1 xxxx xxxx      9135 Feb  8 04:46 libboost_atomic.so
-rw-r--r-- 1 xxxx xxxx      9135 Feb  8 04:46 libboost_atomic.so.1.57.0

zip 格式本身并不真正支持可移植方式的符号链接(并且 Ant 不支持任何不太可移植的选项)。 Ant 的 tar 任务也没有。

而不是内置的 zip 命令,尝试使用 exec 并使用

 <exec executable="zip">
    <arg value="--symlinks"/>
    <arg value="-r"/>
    <arg value="${file.path}"/>
    <arg value="tmp"/>
  </exec>

我在 mac 上尝试了等效的命令行并为我工作,请告诉我你在什么系统上尝试这个。

请注意,这要求您的路径中有一个 'zip' 可执行文件(我假设您有)