2

我有一个依赖于外部 jar 的注释处理器 - lib.jar 我将我的处理器打包为一个 jar 并在编译我的客户端时使用它。在客户端编译开始失败并显示此消息时引入 lib.jar 之前,我一直运行良好。

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

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

4

2 回答 2

3

除了处理器 jar 之外,将 lib.jar 添加到注释工厂类路径。在 Eclipse 中,它位于项目属性、Java 编译器、注释处理、工厂路径下。

于 2012-08-29T20:39:01.510 回答
0

(有点晚了)

此处解释了搜索路径:http: //docs.oracle.com/javase/6/docs/technotes/tools/windows/javac.html#processing

似乎依赖项只需要在类路径中。

使用行家:

<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 库以在 Eclipse IDE 中使用。

于 2013-10-25T14:12:09.240 回答