编译器:编译

全名

org.apache.maven.plugins:maven-compiler-plugin:3.2:compile

说明

编译应用程序源

属性

  • 需要执行一个 Maven 项目。
  • 需要范围内工件的依赖解析:compile
  • 目标是线程安全的并支持并行构建。
  • 自版本:2.0
  • 默认绑定到生命周期阶段编译

可选参数

姓名 类型 自从 描述
注释处理器 细绳[] 2.2

要运行的注释处理器的名称。仅适用于 JDK 1.6+ 如果未设置,则应用默认注释处理器发现过程。


编译器参数 列表 3.1

如果fork设置为true ,则设置要传递给编译器的参数 。例子:


<compilerArgs>
  <arg>-Xmaxerrs=1000</arg>
  <arg>-Xlint</arg>
</compilerArgs>

compiler参数 细绳 2.0

如果fork设置为true ,则设置要传递给编译器的未格式化的单个参数字符串。要传递多个参数,例如-Xmaxerrs 1000(实际上是两个参数),您必须使用 compilerArguments

这是因为传递给 Java 编译器的有效参数列表因编译器版本而异。


compilerArguments 地图 2.0.1 已弃用。改用compilerArgs
编译器 ID 细绳 2.0 要使用的编译器的编译器 ID。有关更多信息,请参阅本指南
默认值为javac
用户属性是maven.compiler.compilerId
编译器重用策略 细绳 2.5 重用创建的 javacc 类的策略:
  • 重用创建(默认):将重用已创建但在多线程构建的情况下,每个线程将有自己的实例
  • reuseSame:即使是多线程构建,每次编译都将使用相同的 Javacc 类
  • alwaysNew:每次编译都会创建一个新的 Javacc 类
请注意,此参数值取决于您使用的 os/jdk,但默认值应该适用于大多数 env。
默认值为${reuseCreated}
用户属性是maven.compiler.compilerReuseStrategy
编译器版本 细绳 2.0 要使用的编译器版本,例如。“1.3”、“1.5”,如果 fork设置为true
用户属性是maven.compiler.compilerVersion
调试 布尔值 2.0 设置为true以在编译的类文件中包含调试信息。
默认值为true
用户属性是maven.compiler.debug
调试级别 细绳 2.1 要附加到-g命令行开关的关键字列表。合法值为 none 或以下关键字的逗号分隔列表:linesvarssource。如果未指定调试级别,默认情况下,不会将任何内容附加到-g。如果未打开调试,则该属性将被忽略。
用户属性是maven.compiler.debuglevel
编码 细绳 2.1 Java 编译器的 -encoding 参数。
默认值为${project.build.sourceEncoding}
用户属性是编码
排除 2.0 编译器的排除过滤器列表。
可执行的 细绳 2.0 设置当forktrue时要使用的编译器的可执行文件。
用户属性是maven.compiler.executable
失败错误 布尔值 2.0.2 指示即使出现编译错误,构建是否会继续。
默认值为true
用户属性是maven.compiler.failOnError
文件扩展 列表 3.1 用于检查增量构建默认时间戳的文件扩展名仅包含.class
forceJavacCompiler使用 布尔值 3.0 编译器现在可以使用 javax.tools 如果在您当前的 jdk 中可用,您可以使用 -Dmaven.compiler.forceJavacCompilerUse=true 或在插件配置中禁用此功能
默认值为false
用户属性是maven.compiler.forceJavacCompilerUse
布尔值 2.0 允许在单独的进程中运行编译器。如果 为,则使用内置编译器,如果 为,则使用可执行文件。
默认值为false
用户属性是maven.compiler.fork
生成的Sources目录 文件 2.2

指定放置由注释处理创建的生成源文件的位置。仅适用于 JDK 1.6+


默认值为${project.build.directory}/generated-sources/annotations
包括 2.0 编译器的包含过滤器列表。
最大内存 细绳 2.0.1 设置内存分配池的最大大小,以兆字节为单位,例如。"128", "128m" 如果fork设置为true
用户属性是maven.compiler.maxmem
仿古 细绳 2.0.1 内存分配池的初始大小(以 MB 为单位),例如。"64", "64m" 如果fork设置为true
用户属性是maven.compiler.meminitial
mojo执行 Mojo执行 3.0 需要存储增量构建支持的状态。 (无描述)
用户属性是mojoExecution
优化 布尔值 2.0 设置为true以使用编译器的优化方法优化编译的代码。
默认值为false
用户属性是maven.compiler.optimize
输出文件名 细绳 2.0 将一组源编译为单个文件时设置输出文件的名称。表达式="${project.build.finalName}"
过程 细绳 2.2

设置是否执行注释处理。仅适用于 JDK 1.6+ 如果不设置,编译和注解处理同时进行。

允许的值为:

  • none - 不执行注释处理。
  • only - 只进行注解处理,不进行编译。

显示弃用 布尔值 2.0 设置是否显示使用已弃用 API 的源位置。
默认值为false
用户属性是maven.compiler.showDeprecation
显示警告 布尔值 2.0 设置为true以显示编译警告。
默认值为false
用户属性是maven.compiler.showWarnings
跳过主要 布尔值 2.0 将此设置为“真”以绕过主要来源的编译。不推荐使用它,但有时很方便。
用户属性是maven.main.skip
跳过多线程警告 布尔值 2.5 (无描述)
默认值为false
用户属性是maven.compiler.skipMultiThreadWarning
资源 细绳 2.0 Java 编译器的 -source 参数。
默认值为1.5
用户属性是maven.compiler.source
陈旧的米利斯 整数 2.0 设置最后修改日期的粒度(以毫秒为单位),以测试源是否需要重新编译。
默认值为0
用户属性是lastModGranularityMs
目标 细绳 2.0 Java 编译器的 -target 参数。
默认值为1.5
用户属性是maven.compiler.target
使用增量编译 布尔值 3.1 启用/禁用增量编译功能
默认值为true
用户属性是maven.compiler.useIncrementalCompilation
冗长的 布尔值 2.0 设置为true以显示有关编译器正在做什么的消息。
默认值为false
用户属性是maven.compiler.verbose

参数详情

注释处理器

要运行的注释处理器的名称。仅适用于 JDK 1.6+ 如果未设置,则应用默认注释处理器发现过程。

  • 类型java.lang.String[]
  • : 2.2
  • 要求

编译器参数

如果fork设置为true ,则设置要传递给编译器的参数 。例子:


<compilerArgs>
  <arg>-Xmaxerrs=1000</arg>
  <arg>-Xlint</arg>
</compilerArgs>
  • 类型java.util.List
  • : 3.1
  • 要求

编译器参数

如果fork设置为true ,则设置要传递给编译器的未格式化的单个参数字符串。要传递多个参数,例如-Xmaxerrs 1000(实际上是两个参数),您必须使用 compilerArguments

这是因为传递给 Java 编译器的有效参数列表因编译器版本而异。

  • 类型java.lang.String
  • : 2.0
  • 要求

编译器参数

已弃用。改用compilerArgs

如果fork设置为true ,则设置要传递给编译器的参数(添加破折号)。

这是因为传递给 Java 编译器的有效参数列表因编译器版本而异。

要通过-Xmaxerrs 1000 -Xlint -Xlint:-path -Averbose=true你应该包括以下内容:

<compilerArguments>
  <Xmaxerrs>1000</Xmaxerrs>
  <Xlint/>
  <Xlint:-path/>
  <Averbose>true</Averbose>
</compilerArguments>
  • 类型java.util.Map
  • 2.0.1
  • 要求

编译器标识

要使用的编译器的编译器 ID。有关更多信息,请参阅本指南
  • 类型java.lang.String
  • : 2.0
  • 要求
  • 用户属性maven.compiler.compilerId
  • 默认值javac

编译器重用策略

重用创建的 javacc 类的策略:
  • 重用创建(默认):将重用已创建但在多线程构建的情况下,每个线程将有自己的实例
  • reuseSame:即使是多线程构建,每次编译都将使用相同的 Javacc 类
  • alwaysNew:每次编译都会创建一个新的 Javacc 类
请注意,此参数值取决于您使用的 os/jdk,但默认值应该适用于大多数 env。
  • 类型java.lang.String
  • : 2.5
  • 要求
  • 用户属性maven.compiler.compilerReuseStrategy
  • 默认值${reuseCreated}

编译器版本

要使用的编译器版本,例如。“1.3”、“1.5”,如果 fork设置为true
  • 类型java.lang.String
  • : 2.0
  • 要求
  • 用户属性maven.compiler.compilerVersion

调试

设置为true以在编译的类文件中包含调试信息。
  • 类型布尔值
  • : 2.0
  • 要求
  • 用户属性maven.compiler.debug
  • 默认值

调试级别

要附加到-g命令行开关的关键字列表。合法值为 none 或以下关键字的逗号分隔列表:linesvarssource。如果未指定调试级别,默认情况下,不会将任何内容附加到-g。如果未打开调试,则该属性将被忽略。
  • 类型java.lang.String
  • : 2.1
  • 要求
  • 用户属性maven.compiler.debuglevel

编码

Java 编译器的 -encoding 参数。
  • 类型java.lang.String
  • : 2.1
  • 要求
  • 用户属性编码
  • 默认值${project.build.sourceEncoding}

不包括

编译器的排除过滤器列表。
  • 类型java.util.Set
  • : 2.0
  • 要求

可执行文件

设置当forktrue时要使用的编译器的可执行文件。
  • 类型java.lang.String
  • : 2.0
  • 要求
  • 用户属性maven.compiler.executable

失败错误

指示即使出现编译错误,构建是否会继续。
  • 类型布尔值
  • 2.0.2
  • 要求
  • 用户属性maven.compiler.failOnError
  • 默认值

文件扩展名

用于检查增量构建默认时间戳的文件扩展名仅包含.class
  • 类型java.util.List
  • : 3.1
  • 要求

forceJavacCompiler 使用

编译器现在可以使用 javax.tools 如果在您当前的 jdk 中可用,您可以使用 -Dmaven.compiler.forceJavacCompilerUse=true 或在插件配置中禁用此功能
  • 类型布尔值
  • : 3.0
  • 要求
  • 用户属性maven.compiler.forceJavacCompilerUse
  • 默认值

叉子

允许在单独的进程中运行编译器。如果 为,则使用内置编译器,如果 为,则使用可执行文件。
  • 类型布尔值
  • : 2.0
  • 要求
  • 用户属性maven.compiler.fork
  • 默认值

生成源目录

指定放置由注释处理创建的生成源文件的位置。仅适用于 JDK 1.6+

  • 类型java.io.File
  • : 2.2
  • 要求
  • 默认值${project.build.directory}/generated-sources/annotations

包括

编译器的包含过滤器列表。
  • 类型java.util.Set
  • : 2.0
  • 要求

最大内存

设置内存分配池的最大大小,以兆字节为单位,例如。"128", "128m" 如果fork设置为true
  • 类型java.lang.String
  • 2.0.1
  • 要求
  • 用户属性maven.compiler.maxmem

追忆

内存分配池的初始大小(以 MB 为单位),例如。"64", "64m" 如果fork设置为true
  • 类型java.lang.String
  • 2.0.1
  • 要求
  • 用户属性maven.compiler.meminitial

mojo执行

(没有说明)
  • 类型org.apache.maven.plugin.MojoExecution
  • : 3.0 需要存储增量构建支持的状态。
  • 要求
  • 用户属性mojoExecution

优化

设置为true以使用编译器的优化方法优化编译的代码。
  • 类型布尔值
  • : 2.0
  • 要求
  • 用户属性maven.compiler.optimize
  • 默认值

输出文件名

将一组源编译为单个文件时设置输出文件的名称。表达式="${project.build.finalName}"
  • 类型java.lang.String
  • : 2.0
  • 要求

过程

设置是否执行注释处理。仅适用于 JDK 1.6+ 如果不设置,编译和注解处理同时进行。

允许的值为:

  • none - 不执行注释处理。
  • only - 只进行注解处理,不进行编译。
  • 类型java.lang.String
  • : 2.2
  • 要求

显示弃用

设置是否显示使用已弃用 API 的源位置。
  • 类型布尔值
  • : 2.0
  • 要求
  • 用户属性maven.compiler.showDeprecation
  • 默认值

显示警告

设置为true以显示编译警告。
  • 类型布尔值
  • : 2.0
  • 要求
  • 用户属性maven.compiler.showWarnings
  • 默认值

跳过主要

将此设置为“真”以绕过主要来源的编译。不推荐使用它,但有时很方便。
  • 类型布尔值
  • : 2.0
  • 要求
  • 用户属性maven.main.skip

跳过多线程警告

(没有说明)
  • 类型布尔值
  • : 2.5
  • 要求
  • 用户属性maven.compiler.skipMultiThreadWarning
  • 默认值

来源

Java 编译器的 -source 参数。
  • 类型java.lang.String
  • : 2.0
  • 要求
  • 用户属性maven.compiler.source
  • 默认值1.5

陈旧的米利斯

设置最后修改日期的粒度(以毫秒为单位),以测试源是否需要重新编译。
  • 类型整数
  • : 2.0
  • 要求
  • 用户属性lastModGranularityMs
  • 默认值0

目标

Java 编译器的 -target 参数。
  • 类型java.lang.String
  • : 2.0
  • 要求
  • 用户属性maven.compiler.target
  • 默认值1.5

使用增量编译

启用/禁用增量编译功能
  • 类型布尔值
  • : 3.1
  • 要求
  • 用户属性maven.compiler.useIncrementalCompilation
  • 默认值

详细

设置为true以显示有关编译器正在做什么的消息。
  • 类型布尔值
  • : 2.0
  • 要求
  • 用户属性maven.compiler.verbose
  • 默认值