问题描述
我正在尝试从命令行构建我们的 Web 项目,但跳过了测试.我正在使用命令 mvn clean install -Dmaven.test.skip=true
.
I am trying to build our web project from the commandline but skipping the testing. I am using the command mvn clean install -Dmaven.test.skip=true
.
当我从传统的 black & 运行命令时白色命令提示符(又名 DOS shell)该命令有效,但是当我从Windows PowerShell"的命令运行它时,出现以下错误:
When I run the command from the traditional black & white Command Prompt (aka DOS shell) the command works, but when I run it from the command from "Windows PowerShell" I get the following error:
[ERROR] 未知生命周期阶段.test.skip=true".您必须以 <plugin-prefix>:<goal> 格式指定有效的生命周期阶段或目标.或 <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>.可用的生命周期阶段有:验证、初始化、生成源、处理源、生成资源、处理资源、编译、处理类、生成测试源、处理测试源、生成测试资源、处理测试资源、测试编译、处理测试类、测试、准备电子包、打包、预集成测试、集成测试、后集成测试、验证、安装、部署、预站点、站点、站点后、站点部署、预清洁、清洁、po圣洁.->[帮助1]
导致这种差异的原因是什么?如何让 PowerShell 像传统的命令提示符一样运行?
What is causing this discrepancy and how do I get PowerShell to behave like the traditional Command Prompt?
这是在 Windows 7 上运行的.
This is running on Windows 7.
推荐答案
当您遇到 PowerShell 对要传递给控制台 EXE 的参数的解释的问题时,请尝试使用 echoargs.exe
实用程序附带 PowerShell 社区扩展.使用此工具,您可以查看 PowerShell 如何为 EXE 提供参数,例如:
When you run into problems with PowerShell's interpretation of arguments to be passed to a console EXE, try using the echoargs.exe
utility that comes with the PowerShell Community Extensions. With this tool you can see how PowerShell supplies the arguments to the EXE e.g.:
PS> echoargs mvn clean install -Dmaven.test.skip=true
Arg 0 is <mvn>
Arg 1 is <clean>
Arg 2 is <install>
Arg 3 is <-Dmaven>
Arg 4 is <.test.skip=true>
PS> echoargs mvn clean install '-Dmaven.test.skip=true'
Arg 0 is <mvn>
Arg 1 is <clean>
Arg 2 is <install>
Arg 3 is <-Dmaven.test.skip=true>
简短回答 - 使用引用 '-Dmaven.test.skip=true'
这篇关于无法在 Microsoft Powershell 中使用 `mvn -D` 参数运行 Maven,但可以在命令提示符下运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!