我有一个带有一些maven命令的“bat”文件很长,所以我尝试用MVN命令创建一个文件来执行。我在cygwin中将我的bat文件称为:
$。/ mvncommand.bat
我文件中的MVN命令示例:
mvn install:install-file -DgroupId=org.openhealthtools.ihe -DartifactId=atna.auditor -Dversion=1.2.0 -Dfile=resources/lib/org.openhealthtools.ihe.atna.auditor_1.2.0.jar -Dpackaging=jar -DgeneratePom=false
mvn install:install-file -DgroupId=org.openhealthtools.ihe -DartifactId=atna.context -Dversion=1.2.0 -Dfile=resources/lib/org.openhealthtools.ihe.atna.context_1.2.0.jar -Dpackaging=jar -DgeneratePom=true
奇怪的是,只执行了第一个mvn安装,一切正常。但是如何让Cygwin调用其余的mvn命令?
谢谢。
JR
答案 0 :(得分:3)
Maven(mvn
)是批处理文件,其他批处理文件中的批处理文件必须使用call
完成。
所以改变你拥有的东西
call mvn ...
它应该有用。
顺便说一句,这与Cygwin没有任何关系。
答案 1 :(得分:0)
您的第一个mvn命令可能会返回错误代码。在Windows的cmd中,这将导致所有后续命令无法运行。这可能是您想要的行为,但您应该考虑使用类似* nix的shell而不是Windows批处理文件,因为您已经在使用Cygwin。
例如,您可以将两个命令放在名为mvncommand
的文件中,并使用您选择的shell。
#!/usr/bin/bash
mvn install:install-file -DgroupId=org.openhealthtools.ihe -DartifactId=atna.auditor -Dversion=1.2.0 -Dfile=resources/lib/org.openhealthtools.ihe.atna.auditor_1.2.0.jar -Dpackaging=jar -DgeneratePom=false
mvn install:install-file -DgroupId=org.openhealthtools.ihe -DartifactId=atna.context -Dversion=1.2.0 -Dfile=resources/lib/org.openhealthtools.ihe.atna.context_1.2.0.jar -Dpackaging=jar -DgeneratePom=true