2010-11-23 14 views
0

Windows(cmd.exe)の下でAntに適切なタブ補完を行う方法はありますか?Windows版Antのタブ補完?

他のすべてのターゲットを一覧表示するためにデフォルトのターゲットを書き上げることができますが、これはたとえばLinuxのような適切なタブ補完と同じではありません。

+0

Linuxでは、 "ant "と入力すると、ビルドファイルで使用できるターゲットがグロビングされていますか? – sudocode

+0

はい...私は通常、開発者が利用可能なすべてのターゲットのリストを印刷するようにしていますが、新しいターゲットが追加されたときやターゲット名が変更されたときに常にそのリストを更新しなければならないのであまり良くありません。 – dm76

答えて

1

BASHには、組み込みのcompleteコマンドでカスタマイズ可能な完了メカニズムがあります。完全なコマンドをスクリプト化することで、あなたが考えることができるほとんどすべてのコマンドライン補完を行うことができます。 antターゲットの完了は、complete-ant-cmd.plというPerlシェルスクリプトを介して行われ、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 &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> 

出力は次のようになります。

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

シース!これは以前の私の答えとまったく違っていましたか? – sudocode

+0

私はなぜこれが受け入れられた答えであるか分かりません! @sudocodeの答えはすでにこれをカバーしており、以前よりも多くの回答があります。 –

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のようなことができるかどうかは私が答えることができない質問です。

"ant -p [rojecthelp]"は、ビルドファイルにターゲット(説明属性が設定されている)を印刷する一般的な方法です。これを行うデフォルトのターゲットを作成するよりもむしろ。

+0

"" ant -p "はターゲットを印刷する典型的な方法です" – dm76

+0

はい、私はCygwinで動作することを知っていますが、cmd.exeで動作させたいです – dm76

+0

"ant -p"が標準ですターゲットを印刷する方法 ":これは' --projecthelp'の略です。 'description'パラメータを持つターゲットは、その記述と共に表示されます。また、 ''タスクがターゲットにない場合、それも表示されます。また、デフォルトターゲットも表示されます。それを試してみてください。 Antで動作するようにCMD.EXEのコマンドライン拡張を取得するつもりはありません。それはBASHのすべての味では機能しません。それはいくつかのシステムに組み込まれた特別な機能ですが、標準のBASHの一部ではありません。 –

3

あなたが途中ではるかに強力な昔ながらのCMDよりたpowershell.exe、で非常に簡単にアリのためtabcompletionを統合することができます。EXE。

Powershell.exeはWindows 7/8に含まれていますが、XPでは別のコンポーネントとしてインストールすることもできます(MicrosoftのWebサイトからダウンロードできます)。

https://github.com/peet/posh-antで提供されているスクリプトを使用しました。スクリプトはまだ完璧ではありませんが、仕事の95%はかなりうまくいきます。

関連する問題