Средство просмотра дерева зависимостей Ant - PullRequest
8 голосов
/ 03 октября 2011

есть часть программного обеспечения (или плагин Eclipse), который,

учитывая цель, позволил бы мне просмотреть целевую зависимость как дерево?

Дерево не обязательно должно быть графическим, оно может быть основано на тексте - просто инструмент, который поможет мне пройти чью-то сеть файлов муравьев для их отладки.

Не обязательно быть подключаемым модулем Eclipse. Однако было бы неплохо, если при щелчке по узлу источник этой цели был брошен в редактор.

Ответы [ 2 ]

4 голосов
/ 08 февраля 2014

Я хотел то же самое, но, как и Дэвид, я просто написал немного кода (Python):

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)
4 голосов
/ 03 октября 2011

Аналогично вопросу отладка муравьев в Eclipse .

Исходя из руководства ANT по Apache , вы можете начать с опции -projecthelp. После этого это может быть более трудным, потому что различные цели могут иметь взаимозависимости и, следовательно, вообще невозможно представить иерархию как дерево.

Вы можете изменить build.xml для определения переменной среды, например, NO_PRINT, который проверяется в каждой цели проекта и, если найден, распечатывает только имя проекта и ничего больше. Зависимости для проекта останутся и позволят ANT пройтись по дереву и получить распечатку различных целей, которые будут затронуты.

...