compiler插件配置问题

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.7.0</version>
    <configuration>
    <!-- 这里配置插件的行为 -->
    </configuration>
</plugin>

compiler插件底层使用javac进行编译,因此插件的配置很多都跟javac的命令选项存在对应关系.
可通过如下命令进行分析:

mvn clean compile -X|grep -E --color -A 500 -e "Configuring mojo"
插件属性 javac选项 描述
- -d 生成class字节码的路径
- -classpath 查找类路径
- -sourcepath 源文件所在路径
- -g 生成所有调试信息
- -nowarn 不生成任何警告
- -source 源码语法版本
- -target 字节码版本
- -encoding java源文件使用的字符编码
- -s 生成的源文件放置的目录
<annotationProcessors> -processor 配置编译时使用的注解处理器全限定类名
<annotationProcessorPaths> -processorpath 配置编译时使用的注解处理器所在的classpath

关于注解处理器的机制:
如果compiler插件没有配置注解处理器,
javac编译时会使用ServiceLoader扫描所有classpath:/META-INF/services/javax.annotation.processing.Processor文件,加载文件中的类作为要使用的注解处理器.
反之,如果显示配置了注解处理器(通过<annotationProcessors>或者<annotationProcessorPaths>),
javac时会添加processor选项或processorpath选项,编译时会使用指定的注解处理器,不再进行扫描.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容