2011-10-03 4 views
8

소프트웨어의 일부 (또는 이클립스 플러그인)개미 대상 종속성 트리 뷰어

이 타겟 주어진 날 트리로 대상 의존성을 볼 수 있도록 할이 있는가?

나무가 그래픽 일 필요는 없으며, 텍스트 기반 일 수도 있습니다. 개미의 파일을 누군가의 메쉬로 트래버스 해내는 데 도움이되는 도구 일뿐입니다.

Eclipse 플러그인 일 필요는 없습니다. 그러나 노드를 클릭하면 해당 대상의 소스를 편집기에 던지면 좋을 것입니다.

답변

4

ant debugging in Eclipse과 유사합니다.

Apache's ANT manual을 기준으로 -projecthelp 옵션으로 시작할 수 있습니다. 여러 대상이 상호 종속성을 가질 수 있으므로 계층 구조를 트리로 표시하는 것이 불가능하기 때문에 이후에는 더 어려울 수 있습니다.

환경 변수를 감지하도록 build.xml을 수정할 수 있습니다 (예 : 각 프로젝트 타겟에서 테스트 된 NO_PRINT. 발견 된 경우 프로젝트 이름 만 출력하고 다른 것은 출력하지 않습니다. 프로젝트에 대한 의존은 남아있을 것이고 ANT는 나무를 걸어 감동을받을 수있는 다른 목표의 출력물을 생산할 수 있습니다. 원형 의존성이 같은 방법으로 처리 될 수

from xml.etree import ElementTree 

build_file_path = r'/path/to/build.xml' 
root = ElementTree.parse(build_file_path) 

# target name to list of names of dependencies 
target_deps = {} 

for t in root.iter('target'): 
    if 'depends' in t.attrib: 
    deps = [d.strip() for d in t.attrib['depends'].split(',')] 
    else: 
    deps = [] 
    name = t.attrib['name'] 
    target_deps[name] = deps 

def print_target(target, depth=0): 
    indent = ' ' * depth 
    print indent + target 
    for dep in target_deps[target]: 
    print_target(dep, depth+1) 

for t in target_deps: 
    print 
    print_target(t) 
+1

이 공정하게 : –

4

는 난 그냥 코드의 비트 (파이썬)를 작성 결국 다윗처럼, 같은 일을 원하지만, perl의 데이터 덤퍼는 첫 번째 명명 된 항목에 대한 포인터로 순환 참조를 처리합니다. 이것은 실제로 직접적인 작업이어야하며 개미에 내장되어야합니다.
+0

내 build.xml에는 다른 빌드가 포함되어 있으므로 체크를 추가했습니다. target_deps : target in print_target – TimP

관련 문제