2015-09-14 3 views
0

Как извлечь версию транзитивной зависимости в свойство?Как извлечь версию транзитивной зависимости в свойство?

Давайте предположим, что следующей иерархии зависимостей:

groupA:artifactA:1.0.0 
+- groupB:artifactB:2.0.0 
    +- groupC:artifactC:3.4.9-RC1 

Сейчас в pom.xml из artifactA, я хочу, чтобы извлечь разрешенную версию groupC:artifactC и присвоить его свойству versionC=3.4.9-RC1. Эта версия C, которую я хотел бы использовать на этапе фильтрации ресурсов, чтобы заменить ее заполнителем в статических файлах (заполнители в структуре XML, которые во время выполнения преобразуются некоторой структурой в модальный диалог. XML, например <component>ArtifactC</component><version>${versionC}</version>). Понятно, что я не хочу сам определять это свойство versionC, но пусть maven сделает для меня работу.

Я искал стандартные плагины maven, но не смог определить подходящую функциональность. Может быть, сочетание плагинов?

+0

Из любопытства, почему вы хотите это сделать? Если вы хотите создать файл со списком всех зависимостей проекта, вы можете использовать цель 'dependency: list' и сохранить его в файле. Затем вы можете отправить этот файл в соответствии с вашими потребностями. – Tunaki

+0

Мне нужно представить статическую страницу html с версиями некоторых выбранных артефактов в моей иерархии зависимостей. – leo

+0

Ближайший вопрос о SO предлагает использовать плагин gmaven, но, вероятно, он может обрабатывать только прямые зависимости текущего pom: http://stackoverflow.com/questions/11885372/is-it-possible-to-get-maven- Зависимости-in-a-property-at-run-time – leo

ответ

0

Если вам нужно представить статическую страницу html (как вы упомянули в своем комментарии) с разрешенными версиями ваших зависимостей, mvn site уже делает это из коробки для вас. Он будет генерировать нечто, называемое «Отчет о зависимости». Этот конкретный отчет будет сгенерирован в target/site/dependencies.html и отобразить список всех разрешенных зависимостей, отсортированных по областям.

+0

OK Пришло время раскрыть все карты. Я должен заполнить заполнители в структуре XML, которая преобразуется во время выполнения некоторой структурой в HTML-страницу. Спасибо за предложение. ' ArtifactC $ {versionC}' – leo

+0

Насколько я знаю, это не может быть сделано Maven из коробки. Вам нужно написать плагин Maven. Хорошей новостью является то, что это не так сложно, есть несколько обучающих онлайн. Если вы посмотрите исходный код для плагина Maven 'dependency', в частности, на цели« list »или« resolve », вы должны получить довольно хорошую идею о том, как действовать. – Daniel

Смежные вопросы