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执行命令是否不明白?
答案 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
注意:\
为了便于阅读而添加,您实际上并不需要它