Может ли Maven вытянуть зависимость в проект? - PullRequest
1 голос
/ 30 марта 2012

Я работаю над несколькими небольшими проектами с Eclipse, Spring, Java и Tomcat, использующими Subversion для контроля версий. Я пытаюсь использовать Maven в первый раз, но одна вещь, которую я уже вижу, мне не нравится, это то, что если я запускаю проект с maven, он загрузит всю зависимость в мою папку .m2 и весь путь к классам. в проекты, но нам нравится переносить все зависимости в WEB-INF/lib, чтобы мы могли проверить их в Subversion.

Можно ли это сделать с Maven? Должно ли это быть сделано таким образом?

Ответы [ 3 ]

3 голосов
/ 30 марта 2012

Проверка в двоичных пакетах в вашем контроле исходного кода на самом деле не идеальна и идет вразрез с maven. Действительная проблема заключается в том, что происходит, когда эти онлайн-хранилища выходят из строя, и решение состоит в том, чтобы разместить свой собственный репозиторий, используя что-то вроде Artifactory . Некоторым людям не нравится, что им приходится поддерживать другую систему наряду с контролем версий, но стоит того, чтобы получить все функции, которые maven предлагает.

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

Самая важная вещь, которую нужно понять в Maven, - это то, что зависимости проекта не должны быть проверены в управлении версиями (не зависит от того, какой контроль версий). Идея Maven состоит в том, чтобы иметь зависимости только в одном хранилище $ HOME / .m2 /. Это означает, что для каждого проекта, который вы работаете, у вас есть только зависимости на жестком диске. Управление зависимостями позволяет легко добавлять / изменять / удалять зависимости из вашего проекта. Кроме того, Maven будет не только обрабатывать зависимости, но и будет поддерживать вас при проведении модульного / интеграционного тестирования , создании отчетов , таких как покрытие кода и т. Д. . и многое другое. Если вы действительно задумываетесь о работе с Maven, вам следует настроить менеджера репозитория, такого как Nexus, Artifactory или Archiva.

Самым важным моментом является то, что если вам не нравится, как работает Maven, отрывайте пальцы от Maven, иначе вы проиграете. Если вам нравится работать с Maven, вы должны принять Maven Way .

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

Вы можете загрузить зависимости с помощью Maven (например, с помощью maven-dependeny-plugin ), но, скорее всего, вы не хотите этого делать.

С Почему бы не хранить JAR-файлы в CVS? (или в любой другой системе контроля версий):

  • Он использует меньше памяти - хотя хранилище, как правило, довольно большое, поскольку каждый JAR хранится только в одном месте, оно фактически экономит место, даже если это не так
  • Это делает проверку проекта быстрее - начальную проверку и, в небольшой степени, обновление, проект будет быстрее, если в CVS нет больших двоичных файлов. Хотя в любом случае их, возможно, потребуется впоследствии снова загрузить, это происходит только один раз и может не потребоваться для некоторых распространенных JAR-файлов, которые уже установлены.
  • Нет необходимости в управлении версиями - CVS и другие системы контроля версий предназначены для управления версиями файлов, но внешние зависимости обычно не меняются, или если они все равно изменяют свои имена файлов, чтобы указать новую версию. Хранение их в CVS не дает никаких дополнительных преимуществ по сравнению с хранением их в локальном кэше артефактов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...