Первое - это вопрос переходных зависимостей.Насколько я понимаю, если вы предоставите зависимость, Maven, в свою очередь, найдет все зависимости этой зависимости.Это здорово, но для многих моих зависимостей это не сработало.(...)
Как уже указывалось, некоторые зависимости могут быть помечены как необязательно (и не переносятся транзитивно).Идея состоит в том, что некоторые зависимости используются только для определенных функций и не потребуются, если эта функция не используется.Если пользователь хочет использовать функциональность, связанную с необязательной зависимостью, он должен будет повторно объявить эту необязательную зависимость в своем собственном проекте.Так что это просто работает как задумано:)
Вторым является управление репозиториями.Maven поставляется с основным репозиторием по умолчанию, но я обнаружил, что во многих случаях этот репозиторий не обновлен.(...)
Даже если идея концепции центрального репо благородна, вы не можете объективно ожидать, что она будет содержать все банки в мире.Одна из наиболее очевидных причин заключается в том, что загрузка артефактов в центральный репозиторий просто требует времени, а ресурсы не бесконечны.И поскольку таким компаниям, как RedHat JBoss или SpringSource или Sun или даже мне, нужна гибкость, реактивность (одним словом, контроль), неудивительно, что они используют свой собственный репозиторий.И, на самом деле, я очень счастлив, что они разоблачают их.Но на самом деле, проекты должны задокументировать, где найти свои артефакты, если они недоступны в central .На всякий случай вам может пригодиться Как найти зависимости от общедоступных репозиториев Maven? полезно.В корпоративной среде лучший способ справиться с этим - создать централизованный (корпоративный) прокси-сервер хранилища.См. на этой странице для таких решений.
Тесное отношение к номеру 2 гарантирует, что у вас есть правильная версия артефакта.(...)
Извините, но вам нужно немного узнать, что вы делаете.Проект не может догадаться, какую версию JSTL вы собираетесь использовать.Затем, что касается различных версий артефактов, соглашение об именах, используемое проектами, не имеет ничего общего с maven, это выбор проекта / поставщика (за исключением SNAPSHOT, который специально обрабатывает maven).FWIW, часто используемые схемы включают в себя: M1 = Milestone 1, RC1 = Release Candidate 1, GA = Общая доступность (финальная версия), CR = Customer Release (часто релиз с исправлением ошибок).Вы также можете увидеть альфа, бета.Это действительно зависит от жизненного цикла и соглашения проекта (хотя здесь нет ничего необычного).
Наконец, проблема типа зависимость.Я, наверное, просто недостаточно хорошо это понимаю, но многие артефакты репо относятся к типу «pom», а не «jar».(...)
Я думаю, что вам действительно не хватает опыта.Похоже, вы боретесь с зависимостями, в то время как для меня все идет гладко :) Возможно, использование поисковой системы хранилища поможет.