compiler插件配置问题


    org.apache.maven.plugins
    maven-compiler-plugin
    3.7.0
    
    
    

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 生成的源文件放置的目录
-processor 配置编译时使用的注解处理器全限定类名
-processorpath 配置编译时使用的注解处理器所在的classpath

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

你可能感兴趣的:(compiler插件配置问题)