當包含在classpath任務中的文件不存在時,是否有內置的方式讓Ant拋出錯誤?我的目標是Ant在編譯目標被調用但是所需的庫不存在時拋出構建錯誤。如何讓Ant在類路徑任務中包含的文件不存在時拋出錯誤?
下面是包含依賴庫的build.xml文件的一個示例,但是當其中一個庫不存在時它不會引發錯誤。
<target name="compile" description="Compiles the Java code" depends="init">
<mkdir dir ="${build}/${module-package}" />
<javac srcdir="${src}/main/${module-package}"
destdir="${build}"
includeantruntime="off"
debug="true"
fork="true">
<classpath>
<fileset dir="${lib}" >
<include name="joda-time/joda-time-2.1.jar" />
<include name="jackson/jackson-core-lgpl-1.9.7.jar"/>
<include name="jackson/jackson-mapper-lgpl-1.9.7.jar"/>
</fileset>
</classpath>
</javac>
</target>
如果編譯需要的庫不存在,那麼'javac'任務本身是否會失敗呢?而且,如果構建不失敗,庫不是必需的。 'javac'沒有提供一個函數來確保類路徑中的文件存在與否;但是,您可以將'fileset'放在外面,使用'condition'和'fail'任務執行檢查並使構建失敗,然後調用'javac'。 – coolcfan
是的,javac任務會失敗,但不知道哪個庫丟失。我希望有一個更好的方法來實現這一點,而不是使用條件和失敗 – Thomas