2013-03-08 18 views
10

Otrzymuję komunikat o błędzie Could not load definitions from resource net/sf/antcontrib/antcontrib.properties. It could not be found., gdy próbuję budować na Eclipse. Pobrałem więc ant-contrib-0.6.jar i zachowałem go w mojej lokalizacji 01:30/, ale nadal nie rozwiązuje mojego problemu. Próbowałem również podając lokalizację /lib w mojej zmiennej systemowej CLASSPATH. Jak mogę obejść ten błąd?Błąd "Nie można załadować definicji z zasobu net/sf/antcontrib/antcontrib.properties. Nie można znaleźć."

+0

Nie wiem o Eclipse, ale w NetBeans instaluje również Ant. Ale możesz ustawić, która instalacja Anta będzie używana. Czy umieściłeś bibliotekę w prawidłowej instalacji Ant? –

Odpowiedz

18

Można podać pełną ścieżkę do JAR ant-contrib jawnie przy użyciu „classpath” element:

<taskdef resource="net/sf/antcontrib/antlib.xml"> 
    <classpath> 
    <pathelement location="${path-to-ant-contrib}/ant-contrib-1.0b3.jar"/> 
    </classpath> 
</taskdef> 
+2

Umieść swój 'ant-contrib - *. Jar' w $ HOME/.ant/lib i zrestartuj Eclipse. Działa to również w systemie Windows. –

+0

To nie pomaga, ponieważ ważne jest ustawienie poprawnego env var ANT_HOME. Jednak otrzymuję ten błąd bez zaćmienia, w czystej ant.

1

Wygląda na to, że nie zainstalowałeś słoju z napisami antywirusowymi w odpowiednim katalogu lib. Może to być trudne, jeśli masz kilka instalacji ANT.

Moja sugestia to zainstalowanie wtyczek ANT w katalogu "$ HOME/.ant/lib". Można pójść o krok dalej i zautomatyzować proces następująco:

<project name="ant-contrib-tasks" default="all"> 

    <taskdef resource="net/sf/antcontrib/antlib.xml"/> 

    <target name="bootstrap"> 
     <mkdir dir="${user.home}/.ant/lib"/> 
     <get dest="${user.home}/.ant/lib/ant-contrib.jar" src="http://search.maven.org/remotecontent?filepath=ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar"/> 
    </target> 

    <target name="all"> 
     <for param="file"> 
      <fileset dir="." includes="*.txt"/> 
      <sequential> 
       <echo message="Found file @{file}"/> 
      </sequential> 
     </for> 
    </target> 

</project> 
0

Użyj poniżej wymienionych kodu w swojej kompilacji xml:

<path id="ant.classpath"> 
<pathelement location="${ant.jarPath}/ant.jar" /> 
<pathelement location="${ant.jarPath}/ant-contrib-0.3.jar" /> 
</path> 
<taskdef resource="net/sf/antcontrib/antcontrib.properties"> 
<classpath refid="ant.classpath" /> 
</taskdef> 

A w pliku własności build:

ant.jarPath = D:/antjars

I miejsce ant.jar i ant-contrib-0.3.jar w katalogu: D:/antjars

3

jedna ważna rzecz, brakuje tej stronie StackOverflow że prawidłowe ustawienie ANT_HOME env var jest absolutnie niezbędne i ważne, bez tego ustawienia ant powtarza ten sam błąd, niezależnie od miejsca skopiowania pliku ant-contrib-1.0b3.jar na systemy plików. Ta brakująca sprawa kosztowała mnie kilka godzin. =)

Jednak otrzymuję ten błąd bez zaćmienia, w czystej mrówce.

+1

Tak, Eclipse skonfigurował go dla ciebie. Przy okazji, jeśli pobierzesz apache-ant, rozpakuj i uruchom 'bin \ ant.bat' lub' bin/ant', ANT_HOME zostanie ustawione automatycznie. –

0

Sprawdź, czy masz uprawnienia do odczytu dla pliku jar ant-contrib.

W naszym przypadku po skopiowaniu pliku z innym użytkownikiem nie, podając ten sam komunikat o błędzie.

0

Naprawiłem to w ten sposób:

dodać JAR do mrówki wpisów wykonawczego ścieżki klasy.

Window>Preferences>Ant>Runtime>Classpath

Dodaj JAR albo Ant Start Wpisy lub globalnych wpisy.