如何使用多行脚本执行mvn?

时间:2019-07-06 16:42:46

标签: shell maven

我正在Maven项目中使用JMeter编写测试用例。我想为每个测试用例提供shell和批处理脚本示例,以便其他人可以轻松地尝试这些测试。另一方面,这些脚本是有关如何通过参数配置测试用例的示例。能够轻松理解脚本参数的多行格式操作系统的重要性,特别是当我将要使用包含10个以上参数的脚本时。

以批处理格式执行脚本的mvn命令如下所示。批处理格式就像魅力一样。

mvn clean verify -DjMeterScript=JMXFileName.jmx ^
  -Djmeter.url=test.environment.url ^
  -Djmeter.port=6080 ^
  -Djmeter.protocol=http ^
  -Djmeter.debugMode=1 ^
  -Djmeter.viaFiddler=1 ^

但是,shell格式不起作用。根据互联网的最终知识,多行外壳脚本的格式应如下所示。

mvn clean verify -DjMeterScript=JMXFileName.jmx \
  -Djmeter.url=test.environment.url \
  -Djmeter.port=6080 \
  -Djmeter.protocol=http \
  -Djmeter.debugMode=1 \
  -Djmeter.viaFiddler=1 \

当我使用./shellScriptName.sh执行脚本时(脚本包含上面的示例),出现以下错误。

问题是如何正确格式化调用maven的shell脚本?

[ERROR] Unknown lifecycle phase "
[ERROR] ". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,您应该使用^符号来换行,但还应在引号中包含带点的所有参数。我认为您不必在最后一行添加^符号。

因此,在您的情况下,它应如下所示:

mvn clean verify -DjMeterScript="JMXFileName.jmx" ^
  -D"jmeter.url"="test.environment.url ^
  -D"jmeter.port"=6080 ^
  -D"jmeter.protocol"=http ^
  -D"jmeter.debugMode"=1 ^
  -D"jmeter.viaFiddler"=1