无法解析注释处理器的jar依赖项

时间:2012-01-25 15:08:15

标签: java classpath annotation-processing

我有一个依赖于外部jar的注释处理器 - lib.jar 我将处理器打包为jar并在编译客户端时使用它。 我把它工作得很好,直到我在客户端编译开始失败时引入了lib.jar。

Exception thrown while constructing Processor object: java.lang.NoClassDefFoundError: com/foo/FooBar

我尝试将lib.jar放在我的客户端的类路径中,但它没有帮助。我错过了什么?

2 个答案:

答案 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中使用。