问题出现
尝试使用jmh用于Benchmark基准测试,在创建maven项目时参考了资料[1],构造maven工程。我的环境是Windows 11 进入终端(Powershell模式),执行如下命令
mvn archetype:generate \
-DinteractiveMode=false \
-DarchetypeGroupId=org.openjdk.jmh \
-DarchetypeArtifactId=jmh-java-benchmark-archetype \
-DgroupId=org.sample \
-DartifactId=test \
-Dversion=1.0
考虑Windows的换行问题,即:
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=org.openjdk.jmh -DarchetypeArtifactId=jmh-java-benchmark-archetype -DgroupId=org.humbunklung -DartifactId=jmhtest -Dversion=1.0.0
报错如下:
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.040 s
[INFO] Finished at: 2024-07-28T20:36:28+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (D:\Data\source\repos\idea_projects\jmh-demo). Please verify you invoked Maven from the correct directory. -> [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/MissingProjectException
问题解决
根据参考资料[2],使用双引号包裹各个参数:
mvn archetype:generate "-DinteractiveMode=false" "-DarchetypeGroupId=org.openjdk.jmh" "-DarchetypeArtifactId=jmh-java-benchmark-archetype" "-DgroupId=org.humbunklung" "-DartifactId=jmhtest" "-Dversion=1.0.0"
执行成功,问题解决,遂记录之,以后备查。