Предположим, это рабочий процесс действий:
- У меня есть проект Eclipse maven.
- Я открываю pom. xml и добавляю зависимость Dependency1 с областью действия " runtime "
- Как только я сохраню pom. xml, eclipse загрузит зависимость из центрального репозитория и поместит ее в мой локальный репозиторий в папке .m2.
- Если я go для библиотек / maven-зависимостей, я увижу эту зависимость с зеленым значком (который, я думаю, означает, что он не нужен для компиляции, и если я попытаюсь импортировать этот класс в любой. java файл, я получу ошибку).
Что касается документов maven: " Эта область указывает, что зависимость не требуется для компиляции, но предназначена для выполнения. Она находится во время выполнения и пути к классам теста, но не в пути к классам компиляции «.
Как только я напишу import Depencency1.targetPackage. *; я получу импорт "Dependency1 не может быть разрешен" , потому что я представляю " кто-то "ищет Dependency1.jar под" путем "(который определяет этот путь), который его не содержит?!
Абстрактная концепция мне ясна, но хотелось бы подробно узнать, что происходит (и кто это делает) с момента, когда я записываю оператор импорта в файл. java в eclipse, до точки «пакет не может быть решен».
Я также хотел бы лучше понять (но я думаю, что это придет вместе с пониманием пункта выше), как это влияет на процесс упаковки maven. Например, я представляю, что JAR, загруженный через зависимость времени выполнения, не будет физически включен в производимый результат (JAR, WAR, EAR)?
Спасибо за любую помощь, я ищу много вещей вокруг, но на самом деле не могу найти этого полного объяснения, которое наполняет все мои сомнения.
Davide