2010-11-23 2 views
0

Windows (cmd.exe)에서 앤트에 대해 적절한 탭 완성을 수행 할 수있는 방법이 있습니까?Windows에서 Ant에 대한 탭 완성?

다른 대상을 모두 나열하도록 기본 대상을 쓸 수도 있지만, 예를 들어 리눅스에서 얻은 적절한 탭 완성과 동일하지는 않습니다.

+0

Linux에서 "ant "을 입력하면 빌드 파일에서 사용할 수있는 대상이 globbing됩니까? – sudocode

+0

예 ... 일반적으로 개발자가 목표 대상을 모든 사용 가능한 대상의 목록을 인쇄하도록 만듭니다. 그러나 새 대상이 추가되거나 대상 이름이 변경 될 때마다 해당 목록을 업데이트하는 것을 기억해야하므로 obvisouly는 그리 좋지 않습니다. – dm76

답변

1

BASH는 기본 제공 complete 명령에서 사용자 지정 가능한 완료 메커니즘을 가지고 있습니다. 완전한 명령을 스크립팅함으로써 생각할 수있는 거의 모든 것에 대해 명령 행 완성을 할 수 있습니다. 개미 타겟 완료는 Cygwin의 시스템 전체 bashrc 파일에 넣어 진 complete-ant-cmd.pl이라는 Perl 쉘 스크립트를 통해 수행됩니다.

CMD.exe에는이 메커니즘이 없으며 이미 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과 같은 기능을 수행 할 수 있는지 여부는 내가 대답 할 수없는 질문입니다.

BTW, "ant -p [rojecthelp]"는 빌드 파일에 설명 속성 집합이있는 대상을 인쇄하는 일반적인 방법입니다. 이를 수행하기위한 기본 목표를 작성하는 것이 아닙니다.

+0

""ant -p "는 목표를 인쇄하는 일반적인 방법입니다." – dm76

+0

예, Cygwin에서 작동하는 것을 알고 있지만 cmd.exe와 함께 사용하고 싶습니다. – dm76

+0

""-p "가 전형적인 것입니다. 목표물을 출력하는 방법 ":'--projecthelp'의 약자. 'description' 매개 변수가있는 대상은 해당 설명과 함께 표시됩니다. 또한 ''작업을 대상에 지정하지 않으면 해당 작업도 표시됩니다. 또한 기본 대상도 표시합니다. 시도 해봐. CMD.EXE에서 명령 행 확장을 Ant와 함께 사용하지 않을 것입니다. BASH의 모든 맛에서 작동하지 않습니다.이것은 일부 시스템에 내장 된 특수 기능이지만 표준 BASH의 일부는 아닙니다. –

3

당신은 방법에 의해 훨씬 더 강력한 평범한 구식 cmd를보다 powershell.exe를,에 아주 쉽게 개미에 대한 tabcompletion를 통합 할 수 있습니다 .exe.

Powershell.exe는 Windows 7/8에 포함되어 있지만 XP에서는 별도의 구성 요소로 설치할 수도 있습니다 (Microsoft 웹 사이트에서 다운로드 할 수 있음).

https://github.com/peet/posh-ant에 제공된 스크립트를 사용했습니다. 이 스크립트는 아직 완전하지는 않지만 95 %의 작업을 잘 처리합니다.