有没有办法在Windows(cmd.exe)下为Ant设置正确的标签?
我可以写出默认目标来列出所有其他目标,但这与你在Linux上获得的正确的选项卡完成情况不同。
答案 0 :(得分:3)
你可以很容易地在powershell.exe中集成tabcompletion for ant,这比普通的旧cmd.exe强大得多。
Powershell.exe是Windows 7/8的一部分,但也可以作为XP中的单独组件安装(可以从Microsoft网站下载)。
我使用了https://github.com/peet/posh-ant下提供的脚本。该剧本还不完善,但95%的工作做得很好。
答案 1 :(得分:2)
BASH在内置complete
命令中具有可自定义的完成机制。通过编写完整命令的脚本,您可以在几乎任何您能想到的事情上完成命令行完成。 ant目标完成是通过名为complete-ant-cmd.pl
的Perl shell脚本完成的,该脚本放在Cygwin的系统范围的bashrc文件中。
CMD.exe没有这种机制,它不能扩展到已经内置的内容之外。
正如其他人所提到的,您可以尝试列出所有目标及其描述的ant -p
或ant --projecthelp
命令。试试这个build.xml
文件:
<project name="test" default="target2" basedir=".">
<description>
This is a test project. It is to demonstrate the use
of the "ant -p" command and show all described
targets. The """ probably won't work, but you can use
regular quotes.
</description>
<target name="target1"
description="This is the prime target, but not the default"/>
<target name="target2"
description="This is the default target but not because I said it here"/>
<!-- Target "target3" won't display in "ant -p" because -->
<!-- it has no description parameters. Life is tough. -->
<target name="target3"/>
<target name="target4"
description="This is target #4, but there's no target3"/>
</project>
输出将是:
$ ant -p
Buildfile: /Users/david/build.xml
This is a test project. It is to demonstrate the use
of the "ant -p" command and show all described
targets. The """ probably won't work, but you can use
regular quotes.
Main targets:
target1 This is the prime target, but not the default
target2 This is the default target but not because I said it here
target4 This is target #4, but there's no target3
Default target: target2
$
答案 2 :(得分:1)
Windows上的此功能works in the Cygwin bash environment。
我一直都在使用Cygwin。不知道并且没有启用此功能。但是我在更新我的个人资料后尝试了它,如该链接所述:
$ ant t<TAB>est<TAB>
test test_1 test_2 test_3
$ ant test
我认为cmd.exe不支持这种customizable command completion。
你是否可以使用PowerShell做类似的事情是我无法回答的问题。
BTW,“ant -p [rojecthelp]”是在构建文件中打印目标(具有描述属性集)的典型方法。而不是编写默认目标来执行此操作。