我定义了一个具有多个目标的 Maven 插件。目前用户运行我的插件如下:
<plugin>
<groupId>myGroupId</groupId>
<artifactId>myArtifactId</artifactId>
<version>someVersion</version>
<executions>
<execution>
<goals>
<goal>myGoal</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但我见过其他插件,比如maven-compiler-pluginFlyway,不需要指定execution:https : //flywaydb.org/getstarted/java
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>5.2.4</version>
<configuration>
<url>jdbc:h2:file:./target/foobar</url>
<user>sa</user>
<locations>
<location>classpath:db/migration</location>
</locations>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
当用户排除<executions>块时,如何指定默认运行的目标?
AFAIK,Maven 插件没有默认目标。
您可以配置插件而不添加目标。但这不会执行插件。
该插件必须在命令行上显式执行(如flyway:migrate),或者在生命周期中自动执行(如compile:compile或jar:jar)。