Откуда maven знает, какой плагин нужно вызвать из цели? - PullRequest
0 голосов
/ 19 сентября 2018

Скажем,

когда вы звоните mvn archetype:generate, откуда maven знает, что ему нужно вызвать «плагин Maven Archetype»?

Или когда вы делаете mvn dependency:copy-dependencies, как он вызывает 'Apache Maven Dependency Plugin '?

т.е. как maven поддерживает связь между' archetype '->' Maven Archetype Plugin '?

1 Ответ

0 голосов
/ 19 сентября 2018

Это доступно по умолчанию.На этой странице перечислены основные плагины и другие

https://maven.apache.org/plugins/.

Если вы хотите использовать другой плагин, вам нужно упомянуть в файле pom.xml, чтобы можно было разрешить зависимости.

<build>
    <plugins>
        <!--Restdocs config for collating all snippets start-->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>animal-sniffer-maven-plugin</artifactId>
            <version>XXX</version>
            ...
        </plugin>
     </plugins>
</build>

Если вы запустите команду mvn animal-sniffer:check.animal-sniffer - префикс плагина, а check - цель.Отображение между префиксом и зависимостью упоминается здесь .Между тем, цель check отображается аннотацией в реальной реализации, если вы проверите исходный код этого плагина, вы увидите что-то вроде ниже.

@Mojo( name = "check", defaultPhase = LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution = ResolutionScope.COMPILE, threadSafe = true )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...