maven如何知道哪个插件需要从目标中调用?

Yan*_*ans 5 java maven

让我们说吧

当你打电话给mvn archetype:generatemaven怎么知道它需要调用"Maven Archetype插件"?

或者当你这样做时mvn dependency:copy-dependencies如何调用'Apache Maven Dependency Plugin'?

即maven如何保持'archetype' - >'Maven Archetype Plugin'之间的联系?

Apo*_*eus 11

它默认可用.此页面列出了核心插件和其他插件

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>
Run Code Online (Sandbox Code Playgroud)

如果您运行该命令mvn animal-sniffer:check.animal-sniffer是插件前缀,check是目标.这里提到前缀和依赖之间的映射.同时,目标check在实际实现中通过注释进行映射,如果您检查此插件的源代码,您将看到如下所示的内容.

@Mojo( name = "check", defaultPhase = LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution = ResolutionScope.COMPILE, threadSafe = true )
Run Code Online (Sandbox Code Playgroud)