2014-02-13 1 views
0

Я пытаюсь использовать Ant для запуска PMD, но он говорит мне, что он не может найти классы Objectweb asm. В частности:Ant не может найти файлы класса Objectweb asm при запуске PMD

build.xml:526: java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor

У меня есть пакет ObjectWeb-ASM установлен, с баночкой файлами в /usr/share/java/objectweb-asm. Я сделал символические ссылки на файлы asm jar от ~/.ant/lib/, но это ничего не меняет. Также не делает символических ссылок на файл jar изнутри /usr/share/java.

Итак, как мне сделать эту работу?

Я использую PMD 4.2.5, Ant 1.8.4 и ObjectWeb-ASM 3.3.1-7

Полное сообщение об ошибке от Ant:

.../build.xml:526: java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor 
    at net.sourceforge.pmd.typeresolution.ClassTypeResolver.<init>(ClassTypeResolver.java:136) 
    at net.sourceforge.pmd.typeresolution.TypeResolutionFacade.initializeWith(TypeResolutionFacade.java:15) 
    at net.sourceforge.pmd.sourcetypehandlers.JavaTypeHandler$3.start(JavaTypeHandler.java:35) 
    at net.sourceforge.pmd.PMD.processFile(PMD.java:118) 
    at net.sourceforge.pmd.PMD.processFile(PMD.java:75) 
    at net.sourceforge.pmd.PMD.processFile(PMD.java:210) 
    at net.sourceforge.pmd.PMD$PmdRunnable.call(PMD.java:469) 
    at net.sourceforge.pmd.PMD$PmdRunnable.call(PMD.java:427) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.ClassVisitor 
    at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1365) 
    at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1315) 
    at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1068) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 12 more 
+0

Можем ли мы увидеть файл сборки муравьев. – mikemil

ответ

0

Оказывается, проблема что PMD ожидает, что основной файл asm jar объекта Objectweb будет называться asm-3.3.1.jar, когда это фактически asm.jar. Простая мягкая ссылка решила проблему.