2011-12-06 46 views
0

我發現我需要的build.xml如下:螞蟻的contrib需要1.8.2 build.xml文件,但會導致錯誤

<taskdef resource="net/sf/antcontrib/antcontrib.properties"> 
    <classpath> 
     <pathelement location="${ant.library.dir}/ant-contrib-1.0b3.jar" /> 
    </classpath> 
</taskdef> 

爲了支持螞蟻的contrib <如果> ... </if >構造我正在使用。但是,Eclipse對此非常惱火。隨着在的build.xml頂部這一節,一切都完美的作品,從Eclipse之外或在Eclipse中的命令行是否,儘管壞脾氣:

enter image description here

什麼「名」,其實是「未定義「?我非常想知道如何解決這個問題。使用谷歌搜索,我看到其他人有相同或類似的問題,但沒有人給出了很好的答案,至少不符合我的情況。

滿頭感謝在這個問題上有任何意見,

拉斯

回答

3

我發現在這裏描述的問題和簡單的工作:http://www.mail-archive.com/[email protected]/msg39536.html

我證實,與下面的生成文件:

<project default="test"> 

    <!-- Eclipse complains if you comment this out --> 
    <property name="dummy" value="dummy"/> 

    <taskdef resource="net/sf/antcontrib/antlib.xml"> 
    <classpath> 
     <pathelement location="C:/lib/ant-contrib/ant-contrib-1.0b3.jar"/> 
    </classpath> 
    </taskdef> 

    <target name="test"> 
    </target> 

</project> 

如果沒有Eclipse之前的屬性聲明,抱怨。

我嘗試過的另一項工作是將taskdef移動到目標中。這也工作:

<target name="test" depends="init"> 
    </target> 

    <target name="init"> 
    <taskdef resource="net/sf/antcontrib/antlib.xml"> 
     <classpath> 
     <pathelement location="C:/lib/ant-contrib/ant-contrib-1.0b3.jar"/> 
     </classpath> 
    </taskdef> 
    </target> 
+0

像魔術一樣,我的朋友!謝謝你。 (我想知道我是否應該用這個打Eclipse的Bugzilla!?) –

0

我不知道如果我這樣做的方式,這只是風格或沒有,但如果你不喜歡的東西創建一個單獨的元素是什麼對於類路徑,如:

<path id="ant.classpath"> 
    <fileset dir="${ant.library.dir}"> 
     <include name="ant-contrib-1.0b3.jar"/> 
    </fileset> 
</path> 

再後來就喜歡@FailedDev行建議撬動classpathref屬性?:

<taskdef resource="net/sf/antcontrib/antcontrib.properties" 
    classpathref="ant.classpath"/> 

或者,我發現另外一個說,使用antlib.xml而不是antcontrib.properties ANT版本1.6+?

編輯:

我有一個很難確定哪些產品這個環節解決了該問題,但如果沒有別的有這特定的評論一對夫婦片段可以爲您提供合適的解決方法 - 雖然也許他們是你說的上面當你說

沒有人給出了一個很好的答案,至少不符合你的解決方案。

https://bugzilla.redhat.com/show_bug.cgi?id=663236#c2

+0

我會試驗這一點。我已經嘗試了antlib。xml的東西也沒有成功。我認爲這是Eclipse的過度繁榮,但我確定要修復它。謝謝!我會回顧一下實驗的結果。 –

+0

@RussBateman我用螞蟻1.8.2的ant-contrib沒有任何問題。必須是Eclipse特有的問題。 – FailedDev

+0

另一件我想提到的@RussBateman - 我沒有特權留下評論,否則我會對你的問題發表評論 - 我認爲未定義的任務/類型是'componentdef'(as與作爲消息模板的一部分相反)。我相信還有一種方法可以將你想要的一個擴展(在你的情況下是'if'),但我需要更多的研究。 –