2010-07-14 63 views
0

Asumming我有一個已經給出的build.xml。我被命令添加自己的任務來檢查一些條件,如果沒有設置,讓構建失敗。Ant <taskdef>問題 - 找不到類名

在這個build.xml中已經定義了一些任務。所以我認爲我可以簡單地寫我自己的任務,將它放在與其他人一樣的包中,它會起作用。

<property name"build-dir" value="../base-build" /> 

<path id="classpath.build"> 
    <fileset dir="${build-dir}/lib" includes="*.jar" /> 
</path> 

<taskdef name="givenTask" classname="test.build.somePackage.GivenTask" classpathref="classpath.build" /> 

<taskdef name="myAddedTask" classname="test.build.someOtherPackage.MyAddedTask" classpathref="classpath.build" /> 

build.xml位於目錄base-build中,並且位於build-tools中。 所以我的問題是:如果我像上面那樣複製taskdef並且它不起作用,那麼這是什麼原因?我是否需要添加對路徑或其他內容的引用?

+1

「classname」後的等號(例如,應該是'classname =「test.build ....」')是否真的丟失或者僅僅是您發佈的錯字? – 2010-07-14 05:39:50

+0

對不起,這些錯誤只是輸入錯誤而已。我修好了他們。 – mpist 2010-07-14 06:04:18

+0

當你說「不起作用」時,Ant是否有錯誤報告?如果沒有,您可以嘗試運行「ant -v」來查看Ant引用的路徑。 – aberrant80 2010-07-14 07:22:00

回答

2

classname"test.package.build.someOtherPackage.MyAddedTask" - 我們有兩個錯誤這裏,也許錯別字:第一,我們錯過=classname,第二,軟件包的名稱,因爲它包含Java關鍵字(package)不vaild。

如果代碼段是從原始代碼複製並粘貼的,那麼您必須修復它。