第一个命令后,来自cygwin的调用批处理文件会中断?

时间:2011-02-02 16:36:28

标签: batch-file cygwin

我有一个带有一些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

2 个答案:

答案 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