Что изменится в расширениях maven в соответствии с этой строкой в ​​apache doc?

Я нашел это примечание в документации Maven:

Вы можете добавлять элементы в этот загрузчик классов по расширениям. Они загружаются в то же место, что и ${maven.home}/lib и, следовательно, доступны ядру Maven и всем плагинам для текущего проекта и последующих проектов (в будущем мы планируем удалить его из последующих проектов).

Я не мог понять, что они подразумевают под "последующими проектами" здесь. Насколько я понимаю, расширения являются улучшениями на этапах жизненного цикла Maven и не зависят от проекта. Так что имеет смысл работать для всех проектов Maven.

Вопрос: Может ли кто-нибудь объяснить, что означает это утверждение "в будущем мы планируем исключить его из последующих проектов"

1 ответ

Решение

Во-первых, расширения могут быть расширениями жизненного цикла, но не обязательно. Вы можете реализовать расширения также как EventSpy, например.

Эта документация относится к Core Classloader, который доступен в таких расширениях и позволяет также расширять его с помощью расширений. Этот загрузчик классов содержит эти файлы из ${maven.home}/lib что не является хорошей идеей и не является необходимым. Было бы лучше иметь только API подключаемого модуля Maven и его экземпляры, которые используются в данный момент, и не более того...

Существуют некоторые расширения, такие как Wagon, которые используются для выполнения перевозки в особых случаях, которые могут быть специфическими для проекта.

Начиная с Maven 3.3.1, механизм расширений ядра был улучшен, чтобы упростить загрузку определенных расширений проекта, что означает, что они расположены в ${maven.projectBasedir}/.mvn/extensions.xml файл, а также загружается из хранилища. До 3.3.1 вам нужно сделать это вручную через mvn -Dmaven.ext.class.path=extension.jar,

Другие вопросы по тегам