繁体   English   中英

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

[英]Batch file stops executing after mvn command

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执行命令不明白吗?

当通过原型从批处理文件调用Maven创建新项目时,您应该意识到执行的交互方式 ,即Maven将提示输入某些值或要求确认。

在您的情况下,这似乎不是所需的行为。 因此,您应该通过命令行传递generate目标和特定原型的一些选项 ,然后通过-B标准Maven选项或通过-DinteractiveMode=true以批处理模式运行。

官方文件您应该通过

  • 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

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

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

CALL mvn <command>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM