如何使用批处理文件执行Ant?

4
我已经安装了Ant并在命令行中成功运行。我知道当你想要使用Ant时,可以在命令行中输入目标路径并执行Ant。这对我来说很有效。但是当我创建一个批处理文件在目标路径中运行Ant时,它告诉我无法识别Ant作为内部或外部命令、可执行程序或批处理文件。
所以这里是我想知道的:如何在批处理文件中执行Ant,或者有没有其他方法可以在不一直输入cd命令的情况下运行它?
4个回答

7

"c:\directory\where\ant\is\ant" -buildfile "d:\directory\where\your\build.xml\is\"

可以理解为在Windows系统中运行Ant工具进行编译,其中c:\directory\where\ant\is\ant是Ant的安装路径,-buildfile指定了build.xml文件所在的路径:d:\directory\where\your\build.xml\is\。请确保路径和文件名正确无误。


谢谢,它可以工作。但我仍然不知道为什么我必须输入完整路径,因为我只需要在批处理文件中键入“java”即可执行Java程序... - surunzi
Java命令是可以直接执行的,因为它位于windows\system32目录中,而windows\system32目录已经包含在path环境变量中。但是ant二进制目录并没有包含在path中。你可以将其加入到path中,这样就不需要包含完整路径了。 - MC ND
但我已经将ant路径添加到系统路径环境变量中。我可以通过Windows提供的命令提示符只需键入“ant”来运行它。然而,当涉及到.bat文件时,它就无法工作。 - surunzi
我已经下载了Ant并尝试过。在我的电脑上,一切都按预期工作,包括从批处理文件中调用Ant。但是,Ant核心(Java代码)是从一个bat文件(ant.bat)中调用的。因此,在您的批处理文件中调用它,应该使用call ant。而且,在ant目录中有一个ant.bat和ant.cmd,但ant.cmd不是Windows批处理文件。因此,调用它而不是ant.bat将生成未识别的命令错误。 - MC ND
在我删除了ant.cmd文件后,一切都按照我的预期工作了,看起来它实际上是在调用ant.cmd而不是我之前尝试的ant.bat - surunzi

1

调用 ant -f %BUILDXML_LOC% -lib %ANTUNITLIB_HOME%

上述命令必须有效。请尝试一下。

其中 %BUILDXML_LOC% 是你的 build.xml 文件所在的位置, 而 %ANTUNITLIB_HOME% 是你放置 ant-antunit-1.2.jar 和其他所需 jar 文件的位置。


1
您尝试在批处理脚本中设置ANT_HOME了吗?例如(语法可能有点不对齐):
SET ANT_HOME=C:\path\to\ant\directory
SET PATH=%PATH%\%ANT_HOME%\bin

0

这是我的做法:

@ECHO OFF
REM allows ant to be invoked from commandline without changing
REM windows configuration.  Place in %HOME%/bin and name ant.bat.
REM You will need to add %HOME%\bin to %PATH%, but once bin is
REM added to path you will not need to add it again for other commands.

SET ANT_HOME=C:\Users\Username\TOOLS\apache-ant-1.10.1

SET JAVA_HOME=C:\Program Files\Java\jdk1.8.0_112

SET PATH=%JAVA_HOME%\bin:%PATH%

"%ANT_HOME%\bin\ant" %*

我将该脚本放在 C:\Users\username\bin 中,并将其命名为 ant.bat

然后,我只需修改一次 PATH 来添加 bin 文件夹。之后,我可以添加任意数量的命令到 bin 中,而无需更改路径。

%* 将命令行中传递的任何内容传递给 ant。因此,我可以像在 bash 中一样在命令行或从另一个脚本中运行 ant。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接