Создание иерархии модулей проекта из pom.xml [duplicate]

var f = {a, b, c};

Он поставляется с ES6 (ECMAScript 2015) и означает то же самое, что и:

var f = {a: a, b: b, c: c};

Он называется сокращением стоимости объекта Literal Shorthands (или просто сокращением свойств, сокращенными свойствами).

Вы также можете комбинировать сокращения с классической инициализацией:

var f = {a: 1, b, c};

Для получения дополнительной информации см. Инициализатор объекта .

23
задан Todd 2 February 2012 в 23:29
поделиться

2 ответа

Нет простой команды Maven, которая покажет вам цепочку родительских POM для pom.xml. Причина этого в том, что это не обычный вопрос, который обычно задают (подробнее об этом ниже). Для вашего скрипта вам просто нужно проанализировать файл pom.xml, получить координаты артефакта родителя, получить файл pom.xml файла artifact и затем проанализировать его файл pom.xml (и повторить). Извините, но я не знаю, о чем я знаю, но другие люди решили аналогичные проблемы .

Вы правы, что технически родительский pom зависимость вашего проекта, но это не буквальная зависимость от Maven и обрабатывается совершенно по-разному. Цепочка родительских помов вместе с активными профилями, ваш файл settings.xml и супермагмент Maven из каталога установки объединяются вместе, чтобы создать эффективный pom вашего проекта. Эффективный POM - это то, что Maven действительно использует для выполнения своей работы. Таким образом, основная цепочка наследования родительского pom уже разрешена и объединена до того, как плагин зависимостей (или любой другой плагин) будет даже активирован.

Вопросы, которые обычно задают большинство людей, это «что делает мой REAL pom.xml действительно выглядят, когда Maven все объединяет? или «Каков результат моей наследственной цепи родительских попов?» или «Как мои свойства pom.xml влияют на активный профиль?» Эффективный pom расскажет вам все это.

Я знаю, что вы не спрашивали, но для других, читающих это, если вы хотите увидеть своего родителя pom.xml, просто откройте pom.xml в редактор POM M2Eclipse и щелкните ссылку родительского артефакта на вкладке обзора. Таким образом, вы можете быстро перемещать цепочку файлов pom.xml всего одним щелчком мыши на помпу. Это был бы странный проект, в котором было больше 3 или 4 родительских поэм наследования.

Если вы хотите увидеть свою эффективную pom, вы можете запустить команду mvn help:effective-pom. Кроме того, вы можете щелкнуть вкладку «Эффективная вкладка POM» в редакторе POM M2Eclipse.

23
ответ дан Richard Fearn 22 August 2018 в 07:03
поделиться
  • 1
    Отличный ответ, спасибо! Не видя ответов в те дни после публикации вопроса, я написал java util, чтобы дать мне информацию с использованием библиотеки Maven-maven. Объект Model (экземпляр POM) имеет метод getParent (), который позволяет мне рекурсивно читать дерево. – Todd 15 March 2012 в 20:37

Базовое решение

mvn org.apache.maven.plugins:maven-dependency-plugin:3.1:display-ancestors

Если ваш проект определяет версию 3.1 или новее, вы можете использовать:

mvn dependency:display-ancestors

Результат выглядит так:

[INFO] Ancestor POMs: org.springframework.boot:spring-boot-starter-parent:1.4.0.RELEASE <- org.springframework.boot:spring-boot-dependencies:1.4.0.RELEASE

Улучшенное решение

Иерархия-maven-плагин (который я написал) может отображать дополнительную информацию о импортированных помпах следующим образом:

[INFO] Displaying hierarchy. Set level=full to display dependencies in dependencyManagement
[INFO]  PARENT org.springframework.boot:spring-boot-samples:1.4.1.BUILD-SNAPSHOT
[INFO]    PARENT org.springframework.boot:spring-boot-starter-parent:1.4.1.BUILD-SNAPSHOT
[INFO]      PARENT org.springframework.boot:spring-boot-dependencies:1.4.1.BUILD-SNAPSHOT
[INFO]        IMPORT org.springframework:spring-framework-bom:4.3.3.BUILD-SNAPSHOT
[INFO]        IMPORT org.springframework.data:spring-data-releasetrain:Hopper-BUILD-SNAPSHOT
[INFO]          PARENT org.springframework.data.build:spring-data-build:1.8.4.BUILD-SNAPSHOT
[INFO]        IMPORT org.springframework.integration:spring-integration-bom:4.3.1.RELEASE
[INFO]        IMPORT org.springframework.security:spring-security-bom:4.1.3.RELEASE

Подробности здесь: https://github.com/ExampleDriven/hierarchy-maven-plugin

8
ответ дан Thorbjørn Ravn Andersen 22 August 2018 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: