Apache Maven 调用者
在许多情况下,工具(包括 Maven 本身)可能希望在干净的环境中启动 Maven 构建。为什么?也许您想避免 Maven 插件产生的副作用污染当前系统环境。也许您想从与当前${user.dir}不同的工作目录运行构建。如果由于某种原因挂起,您可能希望保留通过手术方式杀死许多 Maven 构建中的一个的能力。
此 API 与在新 JVM 中触发 Maven 构建有关。它通过从当前请求中给出的选项以及调用程序本身中指定的全局选项构建一个传统的 Maven 命令行来完成其任务。一旦有了命令行,调用者就会执行它,并捕获结果退出代码或抛出的任何异常以表示执行失败。可以使用InputStream和最多两个InvocationOutputHandler指定输入/输出控制。
特征
- 跟踪调用导致的退出代码和异常
- 全局选项:
- Maven-Home Location(Maven应用目录的位置)
- 全局校验和策略(失败/警告,跨已定义存储库的全局)
- 本地存储库位置
- 工作目录
- 输入/输出处理程序
- API 记录器
- Maven 可执行文件
- 请求选项:
- 全局校验和策略(失败/警告,跨已定义存储库的全局)
- 本地存储库位置
- 项目基础目录
- POM 文件
- POM 文件名(与基本目录一起使用)
- 交互/批处理模式(确定 Maven 是否提示输入)
- 离线模式
- 更新快照标志
- 调试标志(显示调试级输出)
- Show-Errors Flag(显示异常堆栈跟踪,但不是完整的调试输出)
- Inherit-Shell-Environment Flag(从用于启动当前 JVM 的 shell 继承 envars)
- Reactor-Failure Behavior(fail-at-end、fail-never 等)
- 输入/输出处理程序
- 构建属性(-D 开关)
- 建立目标
- 设置位置(settings.xml文件路径)
- 线程数(从带有 -T 的 Maven3 开始)
- 工具链位置(从带有 -t 的 Maven3 开始)