自定义注释处理器在Maven中工作但不在eclipse中工作

时间:2018-03-15 17:48:28

标签: java spring eclipse maven annotation-processing

我有一个自定义注释处理器,用于示例项目。我在示例项目的pom.xml文件中添加了以下内容

x = sp.Symbol('x')
omega = sp.Function('omega')(x ** 2)

eq_1 = sp.sympify("omega(x)")

然后我在application.properties文件中声明参数,如下所示:

  <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <groupId>org.apache.maven.plugins</groupId>
            <configuration>
                <annotationProcessors>
                    <annotationProcessor>com.******.CustomAnnotationProcessor</annotationProcessor>
                </annotationProcessors>
                <compilerArgs>
                    <arg>-Amyarg=${project.artifactId}</arg>
                </compilerArgs>
            </configuration>
 </plugin>

并按如下方式访问“

@myarg@.someVal=foobar

它在Intelli J中工作正常,因为testVal打印出foobar。但是,在eclipse中我收到以下错误:

public class TestClass {
@Value("${@myarg@.someVal}")
private String testVal;

public void testMethod(){
    System.out.println(testVal);
}
}

我理解Eclipse使用自己的编译器,而Maven可能使用javac。我如何让这个自定义注释也适用于eclipse?

2 个答案:

答案 0 :(得分:0)

请按照以下步骤启用注释处理。

  1. 右键单击该项目,然后选择Properties

  2. Java Compiler -> Annotation Processing中。查看Enable annotation processing

  3. enter image description here

    1. 打开Java Compiler -> Annotation Processing -> Factory Path。检查Enable project specific settings。将您的JAR文件添加到列表中。
    2. enter image description here 4.清理并构建项目。

答案 1 :(得分:0)

我也有这个问题。

99%的解决方案如 gyan 所述。

最后1%是用于日食的,我需要“ jar”文件,需要在“工厂路径”中指定所有需要的jar文件。

对于我的项目,这意味着

  1. 注释定义项目jar
  2. 注释处理项目jar和
  3. javapoet.jar。