java - 如何使用 Maven 在没有外部 Jar 的情况下配置 Annotation Processing API?

标签 java maven annotations

我想在我的项目中使用自定义注释。

如何配置 ma​​ven 3 来处理我的注释。 AbstractProcessor 类的注释和实现嵌入在我的应用程序中。

我的注释仅可用于测试 (src/test/java)。

状态注解:

@Target(ElementType.METHOD)
public @interface State {
  boolean success() default true;
}

测试注释处理器:

@SupportedAnnotationTypes("com.*****.client.State")
public class TestAnnotationsProcessor extends AbstractProcessor {

  @Override
  public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
    System.out.print("TESSST ANNOTATION");
    return true;
  }
}

我不想将我的注释放在外部项目中...这会很愚蠢,因为它确实依赖于我的项目。

我该怎么做?谢谢。

最佳答案

你能做类似的事情吗(如果语法有点不对,请原谅我,我手头没有 IDE):

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin<artifactId>
  <version>2.3.2</version>
  <executions>
    <execution>
      <goals>
        <goal>testCompile</goal>
      </goals>
      <phase>test-compile</phase>
      <configuration>
        <annotationProcessors>com.******.TestAnnotationsProcessor</annotationProcessors>
        <proc>only</proc>
      </configuration>
    </execution>
  </executions>
</plugin>

关于java - 如何使用 Maven 在没有外部 Jar 的情况下配置 Annotation Processing API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9128670/

相关文章:

java - 创建扩展堆栈的 Deck 类

maven - 存储库版本策略 : ignore missing poms?

java - Maven:如何获取配置文件以从父 pom 继承 dependencyManagement 标记?

scala - Scala 案例类注释在 2.10 中是否发生了变化?

java - 一名测试观察员报告 JUnit Suite 中各个测试的结果

java - 如何按字符串的最后一点拆分?

java - FopFactory 缺少方法

java - 适用于 Java 的 OrientDB 架构迁移工具

unit-testing - Window Phone App 的单元测试

java - @Transactional(传播=传播。需要)