Apache Ivy: пространство имен XML и импортированные свойства - PullRequest
1 голос
/ 07 марта 2012

Этим утром я просматривал файл Ant build.xml и заметил, что в корневом элементе <project> произошла корреляция пространства имен XML:

<project name="${project.name}" xmlns:ivy="antlib:org.apache.ivy.ant">

Я полагаю, что это пространство имен XML таково, что все задачи Ivy, разбросанные по всему сценарию сборки, знают, какой ресурс искать внутри для определения задач (<ivy:configure>, <ivy:resolve> и т. Д.), Но надеялись на более подробное объяснение. синтаксиса этого утверждения.

  • Каково понятие «пространства имен» в мире муравьев? Этот атрибут xmlns:ivy= указывает на JAR?
  • Где бы этот org.apache.ivy.ant JAR / ресурсы / что бы там ни жили?
  • Что такое antlib и где оно определено?

Кроме того, просто мимолетная мысль: могут ли файлы Ivy (ivy.xml) импортировать файлы свойств и использовать их значения свойств? Я посмотрел в документации по Ivy, но не смог найти ссылки на какие-либо операторы типа импорта.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

Пространство имен, как и любое другое пространство имен, касается XML. Но Ant использует antlib: в качестве схемы URL, чтобы знать, что он должен искать файл org/apache.ivy/antlib.xml в пути к классам. См. antlib Тип в руководстве Ant.

Поскольку он ищет путь к классам, файл antlib.xml может находиться там, где его может найти загрузчик классов. Настройка по умолчанию - поместить необходимый файл jar в каталог <ant install>/lib. Вы также можете запустить ant с -lib, чтобы указать другой каталог, или просто установить CLASSPATH (не рекомендуется).

Да, вы можете импортировать файлы свойств. См. Информацию о руководстве Ivy по мультипроектам . Ivy поддерживает синтаксис ${property}, и вы можете использовать задачу Ant <property> для загрузки файла, который может использовать Ivy. Вы также можете использовать <property> элементы в ivysettings.xml, если хотите определить «глобальные» значения для Ivy.

0 голосов
/ 07 марта 2012

У меня есть только частичный ответ для вас, и я надеюсь, что кто-то может это подтвердить:

  • Пространство имен: я не уверен. Я думаю это просто пространство имен XML.
  • ресурсы: на сервере Ant запускает программу на Java. «Исполняемый файл» Ant (на самом деле это просто сценарий .sh в * NIX и файл .bat в Win) создает его во время выполнения.
  • antlib: это путь к $ ANT_HOME / lib. Он создается во время выполнения, как и путь к классам.
  • Файлы свойств ivy: Да, вы можете использовать файлы свойств (по крайней мере с плагином IvyDE для Eclipse). Я знаю это только потому, что они у нас на работе, я не совсем понимаю механизм их работы.
...