Я пытаюсь понять связь между зависимостями в файле pom.xml проекта и порядком пути java classpath/build (мой вопрос касается также наследования попов).maven pom.xml порядок зависимостей vs classpath/build path order
До сих пор мне не удалось найти подробное пошаговое объяснение.
Я точно заметил, что это не «то же», что означает, иногда зависимости, которые у меня есть в моем pom.xml, не будут отображаться в пути построения в eclipse или не будут в одном порядке (после совершения mvn eclipse: eclipse - $ someflag).
Предположим, например, у меня есть следующий Parent POM:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>SOME_GROUP_ID</groupId>
<artifactId>PARENT</artifactId>
<version>SOME_VERSION</version>
<name>${project.groupId}:${project.artifactId}</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>SOME_OTHER_ARTIFACT1</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<modules>
<module>CHILD</module>
</modules>
</project>
и pom.xml какого-то другого проекта наследует его:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>SOME_GROUP_ID</groupId>
<artifactId>PARENT</artifactId>
<version>SOME_VERSION</version>
</parent>
<artifactId>CHILD</artifactId>
<name>${project.groupId}:${project.artifactId}</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>SOME_OTHER_ARTIFACT2</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Мои вопросы: Если я теперь запустить MVN eclipse: eclipse - $ someflagCHILD проект:
- Должно ли в пути для сборки для проекта CHILD содержать: PARENT, SOME_OTHER_ARTIFACT1, SOME_OTHER_ARTIFACT2 точно? не уверен? когда и почему один из них должен/не должен появляться в пути сборки?
- Должен ли в файле classpath файл для проекта CHILD содержать: PARENT, SOME_OTHER_ARTIFACT1, SOME_OTHER_ARTIFACT2 точно? не уверен? когда и почему один из них должен/не должен появляться в пути сборки?
- Связано ли это с флагом (i.e $ someflag), которое использовалось при запуске mvn eclipse: eclipse?
- Должны ли банки в библиотеке отображаться также в порядке зависимостей в инициализированном проекте? то есть PARENT, SOME_OTHER_ARTIFACT1, SOME_OTHER_ARTIFACT2 (сверху вниз) обязательно? Когда и почему порядок должен отличаться?
Спасибо
КАК ДЕТЯМ ПРЕДУПРЕЖДЕНИЕ ПОСРЕДСТВОМ ПЕЧАТИ? В нем нет ['parent'section] (https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance). По крайней мере, не в вашем коде выше. Я также пропустил две другие важные части [Координаты Maven] (https://maven.apache.org/pom.html#Maven_Coordinates): '' и ' .' –
@GeroldBroser, вы правы, я отредактирую это –
@GeroldBroser - отредактирован, пожалуйста, дайте мне знать, если еще что-то не хватает. –