我有一个依赖于外部jar的注释处理器 - lib.jar 我将处理器打包为jar并在编译客户端时使用它。 我把它工作得很好,直到我在客户端编译开始失败时引入了lib.jar。
Exception thrown while constructing Processor object: java.lang.NoClassDefFoundError: com/foo/FooBar
我尝试将lib.jar放在我的客户端的类路径中,但它没有帮助。我错过了什么?
答案 0 :(得分:3)
除了处理器jar之外,还将lib.jar添加到注释工厂类路径中。在Eclipse中,它位于项目属性,Java编译器,注释处理,工厂路径。
答案 1 :(得分:0)
(有点晚)
此处解释搜索路径: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/javac.html#processing
似乎依赖项只需要在类路径中。
与maven:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<annotationProcessors>
<annotationProcessor>
*your annotation class qualified name*
</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
加上对注释处理器工件的依赖。
我在eclipse IDE中遇到这个问题,使用具有外部依赖关系的注释处理器。
要解决这个问题,您可以构建一个jar-with-dependencies lib,以便在Eclipse IDE中使用。