Действительно ли необходимо объявить maven "зависимости" в pom.xml? - PullRequest
0 голосов
/ 01 августа 2011

Мне нужно проверить, как работает Maven.

Насколько важно для нас явно указать зависимости проекта (<dependencies>) в pom.xml? Некоторые говорили, что это необходимо только тогда, когда нам нужна конкретная версия этого фляги, иначе Maven сможет найти флягу в вашем локальном / удаленном репозитории Maven. Однако иногда я не могу собрать или упаковать проект Maven без указания / объявления зависимостей.

Итак ... действительно ли декларация необходима?

Ответы [ 4 ]

2 голосов
/ 01 августа 2011

Если ваш код просто использует «простую» Java и не зависит от каких-либо других библиотек, вам не нужно объявлять какие-либо зависимости (поскольку вы не зависите ни от чего, кроме среды выполнения Java).

InВ большинстве случаев вы будете использовать некоторые сторонние библиотеки - таким образом, вы должны объявить их как зависимости в вашем проекте, чтобы позволить maven создать правильный путь к классу, который позволит вашей сборке работать (транзитивные зависимости будут разрешены автоматически - как уже упоминалось).

Что касается конкретной версии банки, взгляните на Зависимости проекта раздела "Maven: Полный справочник" , предоставленного Sonatype.У вас есть несколько вариантов объявления нужной версии (включая диапазоны версий).

Не ожидайте, что объявление

<version>1.2.4</version>

заставит Maven использовать эту версию.Это означает только «разрешить что угодно, но предпочитать 1.2.4».Если вам нужно заставить maven использовать определенную версию и ничего больше, вы должны использовать

<version>[1.2.4]</version>
1 голос
/ 01 августа 2011

Вам не нужно объявлять транзитивные зависимости JAR.Кроме этого, все должно быть объявлено.Вот хорошее прочтение о том, как Maven управляет зависимостями.http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

1 голос
/ 01 августа 2011

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

0 голосов
/ 01 августа 2011

Вам всегда нужно указывать зависимости. Maven не может предсказать, какие библиотеки вам нужны. В большинстве случаев вам не нужно указывать дополнительные репозитории Maven. Это необходимо только в том случае, если у вас есть библиотеки в качестве зависимостей, которые не содержатся в Maven Central.

То, что вы также можете устранить в своих проектах, это номера версий ваших зависимостей, если у вас есть родительский POM, где указаны версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...