编译器:编译

全名

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

说明

编译应用程序源

属性

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

可选参数

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

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


编译器参数 列表 3.1

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

<compilerArgs>
  <arg>-Xmaxerrs=1000</arg>
  <arg>-Xlint</arg>
  <arg>-J-Duser.language=en_us</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
优化 布尔值 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>
  <arg>-J-Duser.language=en_us</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

优化

设置为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
  • 默认值