BUILD FAILED D:\xxxxxtrunk\project-java\build.xml:25: Reference task.path not found.
嘛,哪裏是在build.xml
文件中定義的類路徑task.path
?
當您通過<taskdef>
定義任務,你需要做的幾件事情:
- 你需要在任務存在指定的jar文件。
- 您需要指定包含任務的類,以及如何在jar中找到它。這可以通過以下兩種方式之一完成:
- 你說這個班級在
com.foo.bar.mytask
,然後給它一個名字。
- 你終於可以指定在罐子的資源(無論是屬性文件或XML文件),這幾乎是說什麼類與每個名稱(這是
resource="org/tigris/subversion/svnant/svnantlib.xml"
正在做相關的。
- ,則需要指定如何找到jar文件。
那你就錯過最後一個。你指定的類路徑稱爲一個task.path
參考,但實際上並沒有定義的類路徑。
有幾件事情可以做:
這是我的偏好,以下是我通常的做法。
<taskdef resource="org/tigris/subversion/svnant/svnantlib.xml">
<classpath>
<fileset dir="${basedir}/antlib/svnant}"/>
</classpath>
</taskpath>
在你的項目中,創建一個名爲${basedir}/antlib/svnant
目錄,並把與該目錄中該SVNAnt任務就全部五個罐子。這樣,您的可選構建任務所需的所有jar現在都在您的項目中。如果有人從版本控制系統中檢出項目,他們會自動獲取所需的任務罐。
我把我所有的可選ant任務罐放在那個目錄下,然後把它們放在它們自己的目錄中。
還記得我說過你需要的一件事是指定包含任務的類嗎? 這裏是你指定了org/tigris/subversion/svnant/svnantlib.xml
文件看起來像svnant.jar
:
<?xml version="1.0"?>
<antlib>
<!-- Tasks -->
<taskdef name="svn"
classname="org.tigris.subversion.svnant.SvnTask" />
<!-- Types -->
<typedef name="svnFileSet"
classname="org.tigris.subversion.svnant.types.SvnFileSet" />
<!-- Selectors -->
<typedef name="svnNormal"
classname="org.tigris.subversion.svnant.selectors.Normal" />
<typedef name="svnAdded"
classname="org.tigris.subversion.svnant.selectors.Added" />
<typedef name="svnReplaced"
classname="org.tigris.subversion.svnant.selectors.Replaced" />
<typedef name="svnModified"
classname="org.tigris.subversion.svnant.selectors.Modified" />
<typedef name="svnConflicted"
classname="org.tigris.subversion.svnant.selectors.Conflicted" />
<typedef name="svnIgnored"
classname="org.tigris.subversion.svnant.selectors.Ignored" />
<typedef name="svnUnversioned"
classname="org.tigris.subversion.svnant.selectors.Unversioned" />
<typedef name="svnLocked"
classname="org.tigris.subversion.svnant.selectors.Locked" />
<typedef name="svnMissing"
classname="org.tigris.subversion.svnant.selectors.Missing" />
<typedef name="svnDeleted"
classname="org.tigris.subversion.svnant.selectors.Deleted" />
<!-- Conditions -->
<typedef name="svnExists"
classname="org.tigris.subversion.svnant.conditions.Exists" />
</antlib>
這只是任務名稱的地圖到罐內類。
知道了,'<路徑ID = 「task.path」>'被宣佈之後到build.xml中。現在可以了。謝謝! – Someday