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

时间:2016-06-06 13:18:05

标签: shell maven batch-file command maven-archetype

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

1 个答案:

答案 0 :(得分:2)

当从批处理文件调用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

注意:\为了便于阅读而添加,您实际上并不需要它