如何使用 Ant 1.9 测试符号链接



如果jar文件是文件而不是符号链接,我需要执行命令。我找到了一个仅适用于 ant 1.10 的解决方案。

有谁知道如何用蚂蚁 1.9 做到这一点?

这是我的构建.xml。

<?xml version="1.0"?>
<project name="AsterixDecoder" default="bm" basedir=".">
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>
  <property environment="env"/>
  <condition property="exists.CCM_ADDR">
    <isset property="env.CCM_ADDR"/>
  </condition>
  <target name="compile" description="compile the source " >
    <mkdir dir="${build}"/>
    <javac srcdir="${src}" destdir="${build}" includeantruntime="false"/>
    <mkdir dir="${build}/resources"/>
    <copy todir="${build}/resources">
        <fileset dir="resources"/>
    </copy>
  </target>
  <target name="checkout" if="exists.CCM_ADDR">
    <ccmcheckout file="${dist}/AsterixDecoder.jar"/>
  </target>
  <target name="dist" depends="compile, checkout"
        description="generate the distribution" >
    <jar jarfile="${dist}/AsterixDecoder.jar" filesetmanifest="mergewithoutmain">
        <manifest>
            <attribute name="Main-Class" value="fr.eurocontrol.escape.ground.asterixdecoder.AsterixDataTree"/>
            <attribute name="Class-Path" value="."/>
        </manifest>
        <fileset dir="${build}"/>
    </jar>
  </target>
  <target name="check.symlink">
    <fileset dir="${dist}" id="fileset" includes="AsterixDecoder.jar">
      <symlink/>
    </fileset>
    <pathconvert refid="fileset" property="is.symlink" setonempty="false"/>
  </target>
  <target name="reconcile" depends="check.symlink" if="exists.CCM_ADDR" unless="is.symlink">
    <exec executable="ccm">
      <arg value="reconcile"/>
      <arg value="-udb"/>
      <arg value="${dist}/AsterixDecoder.jar"/>
    </exec>
  </target>
  <target name="bm" description="build management" depends="dist, reconcile">
  </target>
</project>

不要犹豫,提出任何改进建议。我仍然是编写蚂蚁文件的初学者。

最直接的方法是使用 Ant symlink任务的 record 函数。这将创建一个属性文件,其中列出了在给定资源集合中找到的所有符号链接。下面是一个示例目标:

<target name="default">
    <symlink link="testdir" resource="build" />
    <symlink action="record" linkfilename="links.record">
        <fileset dir="." includes="*" />
    </symlink>
    <property file="links.record" />
    <condition property="testdir.is.symlink">
        <isset property="testdir" />
    </condition>
    <echo message="${testdir.is.symlink}" />
</target>

相关内容

  • 没有找到相关文章

最新更新