maven 执行mvn命令后,批处理文件停止执行

zfciruhq  于 2022-12-11  发布在  Maven
关注(0)|答案(2)|浏览(253)
set homepath=%userprofile%
set a=%1
set b=%2
set c=%3
set uuid=%4
set zipDirectory=%5
set pluginDirectory=%6
cd %homepath%\%a%
mvn archetype:generate -DarchetypeCatalog=file://%homepath%/.m2/repository

到这里一切都正常了,然后命令行停止执行,它不输出1,也不输出后续命令。

1
c
b
c
%uuid%
Y
cd %homepath%\%a%\%b%
mvn clean install
cd %homepath%\%a%\%b%\%b%-plugin\target
jar -xvf %zipDirectory%
cd %homepath%\%a%\%b%\%b%-plugin\target\META-INF\maven\%c%\%b%-plugin
copy pom.xml + %pluginDirectory%
cd %pluginDirectory%
rename pom.xml %b%-plugin-1.0.0.pom

问题:maven有什么我不知道的东西会中断批处理进程吗?它不明白用一个单独的数字1来执行命令吗?

ogq8wdun

ogq8wdun1#

当从批处理文件中调用Maven以通过原型创建新项目时,您应该注意执行的interactive mode,即Maven将提示输入某些值或要求确认。
在您的情况下,这似乎不是您想要的行为。因此,您应该通过命令行传递generate目标的一些options和特定的原型,然后通过-B标准Maven选项或通过-DinteractiveMode=true以批处理模式运行。
official documentation您应该通过

  • archetypeGroupId、archetypeArtifactId和archetypeVersion定义了用于项目生成的原型。
  • groupId、artifactId、version和package是需要设置的主要属性,每个原型都需要这些属性,有些原型定义了其他属性;如果需要,请参考相应原型的文档

因此,在您的案例中:

call mvn archetype:generate -DarchetypeCatalog=file://%homepath%/.m2/repository -B \
-DarchetypeGroupId=com.sample -DarchetypeArtifactId=artifact -DarchetypeVersion=1.0 \ 
-DgroupId=your.groupid -DartifactId=your.artifactId -Dversion=0.0.1-SNAPSHOT \
-Dsomething-else=value

注意:添加\是为了提高可读性,实际上并不需要它

ckx4rj1h

ckx4rj1h2#

试着像这样执行命令。然后下一个命令将按预期执行

CALL mvn <command>

相关问题