2011-02-01 2 views
2

Получение следующих исключений при запуске findbugs в ant task.
У меня есть корзина для мусора версии 0.7 и jar-версия jsr305 версии 1.3.8 в моем доме для поиска. Дайте мне знать, если я что-нибудь не хватает
FindBugs:java.lang.ClassNotFoundException: edu.umd.cs.findbugs.FindBugs2

[findbugs] Executing findbugs from ant task
[findbugs] Running FindBugs...
[findbugs] java.lang.NoClassDefFoundError: edu/umd/cs/findbugs/FindBugs2
[findbugs] Caused by: java.lang.ClassNotFoundException: edu.umd.cs.findbugs.FindBugs2
[findbugs] at java.net.URLClassLoader$1.run(Unknown Source)
[findbugs] at java.security.AccessController.doPrivileged(Native Method)
[findbugs] at java.net.URLClassLoader.findClass(Unknown Source)
[findbugs] at java.lang.ClassLoader.loadClass(Unknown Source)
[findbugs] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[findbugs] at java.lang.ClassLoader.loadClass(Unknown Source)
[findbugs] Could not find the main class: edu.umd.cs.findbugs.FindBugs2. Program will exit.
[findbugs] Exception in thread "main"
[findbugs] Output saved to findbugs.xml

<property name="build" value="C:\.hudson\jobs\project\workspace\child\classes" /> 
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/> 
<target name="findbugs" > 
    <findbugs home="C:\apache-ant-1.7.1\lib\findbugsant" 
       output="xml" 
       outputFile="findbugs.xml"> 
     <sourcePath path="C:\.hudson\jobs\project\workspace"/> 
     <class location="${build}" /> 
    </findbugs> 
</target> 
+0

Похоже, что classpath isuse. Можете ли вы разместить содержимое своего файла build.xml? –

+0

<свойство name = "build" value = "C: \. Hudson \ jobs \ project \ workspace \ child \ classes" /> < SourcePath путь = "C:. \ Hudson \ работа \ проект \ рабочее пространство" /> <класс место = "$ {сборки}" /> CodeRocker

+0

вы можете изменить первоначальную проводку и список содержимого с: \ apache-ant-1.7.1 \ lib \ findbugsant. –

ответ

0

Похоже установки/конфигурации findbugs с ant.

Из приведенного выше фрагмента кода, это выглядит как findbugs был установлен в lib вложенной муравья, а не просто findbugs-ant.jar копируется на него как documented.

7

В вашем taskdef используйте атрибут classpath, чтобы указать, где именно находится банка, содержащая класс findbugs (FindBugsTask). Попробуйте что-то вроде этого:

<taskdef name="findbugs" classpath="C:\apache-ant-1.7.1\lib\findbugsant\findbugs-ant.jar" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" /> 

FindBugs баночка у меня есть FindBugs-подпапке, так что проверить это в предлагаемом решении и использовать FindBugs имя файла, которое относится к делу, и вы должны быть в порядке ,

+0

Это должен быть принятый ответ. У этого контейнера findbugs может быть другое имя, в зависимости от того, с каким пакетом он пришел. например 'C: \ рабочее место \ 3rdPartyJars \ findbug' – datv