Pergunta

Existe alguma maneira de ter uma conclusão adequada da guia para a formiga no Windows (cmd.exe)?

Eu poderia escrever o destino padrão para listar todos os outros alvos, mas isso não é o mesmo que uma conclusão adequada da guia que você obtém no Linux, por exemplo.

Foi útil?

Solução

Bash tem um mecanismo de conclusão personalizável na construção complete comando. Ao criar o comando completo, você pode fazer a conclusão da linha de comando em quase tudo o que puder pensar. A conclusão do alvo da formiga é feita através de um script de shell Perl chamado complete-ant-cmd.pl que é colocado no arquivo BASHRC Wide System em Cygwin.

O cmd.exe não possui esse mecanismo e não pode ser expandido além do que já está incorporado a ele.

Como outros mencionaram, você pode tentar o ant -p ou ant --projecthelp comando que listará todos os objetivos e sua descrição. Tente isso build.xml Arquivo:

<project name="test" default="target2" basedir=".">
    <description>
         This is a test project. It is to demonstrate the use
         of the &quot;ant -p&quot; command and show all described
         targets. The "&quot;" 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>

A saída será:

$ 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
$

Outras dicas

Você pode integrar o TabCompletion para a ANT com bastante facilidade no PowerShell.exe, que, por sinal, é muito mais poderoso que o cmd.exe antigo e simples.

PowerShell.exe faz parte do Windows 7/8, mas também pode ser instalado como componente separado no XP (pode ser baixado no site da Microsoft).

Eu usei o script fornecido em https://github.com/peet/posh-ant. O script ainda não é perfeito, mas 95% do trabalho muito bem.

Esse recurso Funciona no ambiente do Cygwin Bash nas janelas.

Eu uso cygwin o tempo todo. Não sabia e não havia ativado esse recurso. Mas eu tentei agora depois de atualizar meu perfil, conforme descrito nesse link:

$ ant t<TAB>est<TAB>
test    test_1  test_2  test_3
$ ant test

Eu não acho que o cmd.exe suporta esse tipo de conclusão de comando personalizável.

Se você poderia fazer algo parecido com PowerShell é uma pergunta que não posso responder.

BTW, "Ant -p [rojecthelp] é a maneira típica de imprimir os alvos (que possuem o conjunto de atributos de descrição) no seu arquivo de compilação. Em vez de escrever um alvo padrão para fazer isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top