завершение вкладки для Ant под Windows?
-
27-09-2019 - |
Вопрос
Есть ли какой-нибудь способ обеспечить правильное завершение вкладки для Ant в Windows (cmd.exe)?
Я мог бы написать цель по умолчанию, чтобы перечислить все остальные цели, но это просто не то же самое, что правильное завершение вкладки, которое вы получаете, например, в Linux.
Решение
Bash имеет настраиваемый механизм завершения в встроенном complete
команда. Сцелируя полную команду, вы можете сделать завершение командной строки практически все, о чем вы можете подумать. Завершение цели Ant выполняется через сценарий оболочки Perl под названием complete-ant-cmd.pl
который введен в систему широкий файл Bashrc в Cygwin.
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
$
Другие советы
Вы можете довольно легко интегрировать tabcompletion для ant в powershell.exe, который, кстати, намного мощнее, чем обычный старый cmd.exe.
Powershell.exe является частью Windows 7/8, но также может быть установлен как отдельный компонент в XP (можно загрузить с веб-сайта Microsoft).
Я использовал сценарий, предоставленный в разделе https://github.com/peet/posh-ant.Сценарий еще не идеален, но выполняет 95% работы достаточно хорошо.
Эта особенность Работает в среде Cygwin Bash на окнах.
Я использую Cygwin все время. Не знал и не включил эту функцию. Но я попробовал это только после обновления моего профиля, как описано в этой ссылке:
$ ant t<TAB>est<TAB>
test test_1 test_2 test_3
$ ant test
Я не думаю, что CMD.exe поддерживает этот вид Настраиваемая завершение команды.
Можете ли вы сделать что-то подобное с PowerShell - это вопрос, который я не могу ответить.
Кстати, «Ant -P [ROJECTHEHELP] - это типичный способ печатать цели (которые имеют набор атрибутов описания) в файле сборки. Вместо того, чтобы написать цель по умолчанию для этого.