gpt4 book ai didi

java - 将注释处理器集成到同一个项目中

转载 作者:搜寻专家 更新时间:2023-11-01 03:15:30 27 4
gpt4 key购买 nike

是否可以在定义它的同一个项目中使用注解处理器?

例子:

  • 源/

    • MyAnnotation.java
    • path_to_MyAnnotationProcessor.MyAnnotationProcessor.java
    • 其他类
  • 资源
    • META-INF/services/javax.annotation.processing.Processor
  • pom

当我运行 mvn clean install 时,我希望我的处理器能够处理用 MyAnnotation 注释的类。

我不想从另一个库导入已编译的处理器,我只想在我的 src 中定义它后使用它。

现在,我得到错误:[ERROR] 无法在项目 my-project 上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile):编译失败
[错误] 未找到注释处理器“path_to_MyAnnotationProcessor”

pom.xml 的一部分,我在这里引用。给我的处理器:

        <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.plugin.compiler}</version>
<configuration>
<source>${version.java}</source>
<target>${version.java}</target>
<annotationProcessors>
<proc>path_to_MyAnnotationProcessor.MyAnnotationProcessor</proc>
</annotationProcessors>
</configuration>
</plugin>

感谢大家,特别是@Stefan FerSTL 和@yegodm。来自 yegodm 的解决方案是:“一种方法是两个在同一个项目中有两个模块。一个模块将定义注释和处理器。另一个将其作为建立构建顺序的依赖项。”

最佳答案

解决此问题的最简单方法是将您的项目转换为多模块项目,其中注释处理器位于其自己的模块中。注释处理器有一个不同的模块,您可以使用全新的 <annotationProcessorPaths> 通过 groupId 定义注释处理器的选项/artifactId .

使用注释处理器的模块可能需要依赖注释处理器模块才能首先构建它。

注意:在此回答的先前版本中,我描述了解决此问题的另一种方法,但显然无法开箱即用。该部分已被删除。

关于java - 将注释处理器集成到同一个项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55715819/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com