在我目前正在进行的一个项目中,我们使用 flexmojos-plugin 来编译一个小型 Flex 应用程序。该插件有各种配置,但没有配置目标,所以我想知道是什么让 Maven“知道”要执行的目标是什么?
该插件有25 个目标,据我所知,它并没有全部运行。因此,我假设插件中必须有某种配置,说明默认执行哪些目标 - 某种默认执行。我查看了 swf-compile Mojo 的源代码,我看不到任何类似“@default”注释的东西,那么它是在哪里配置的呢?
在我目前正在进行的一个项目中,我们使用 flexmojos-plugin 来编译一个小型 Flex 应用程序。该插件有各种配置,但没有配置目标,所以我想知道是什么让 Maven“知道”要执行的目标是什么?
该插件有25 个目标,据我所知,它并没有全部运行。因此,我假设插件中必须有某种配置,说明默认执行哪些目标 - 某种默认执行。我查看了 swf-compile Mojo 的源代码,我看不到任何类似“@default”注释的东西,那么它是在哪里配置的呢?
插件目标到生命周期阶段的实际映射来自包装类型,并在定义此包装的插件中提供(不包括 Maven 发行版提供的预定义包装,如jar
等ejb
)。
对于 Flexmojos,你可以在这里找到它:
http ://www.jarvana.com/jarvana/view/org/sonatype/flexmojos/flexmojos-maven-plugin/4.0-pre-alpha-1/flexmojos-maven-plugin-4.0 -pre-alpha-1.jar!/META-INF/plexus/components.xml
该文件定义了 Plexus 的类型组件,LifecycleMapping
为它自己的包装类型提供这些映射:swc
、swf
、air
.
如果你进入一个特定的目标,你会看到该目标绑定到哪个生命周期阶段的文档页面。例如绑定到编译生命周期阶段的https://repository.sonatype.org/content/sites/maven-sites/flexmojos/3.8/compile-swc-mojo.html 。在源代码中,您可以看到目标由@phase绑定到哪个生命周期阶段。
此外,如果您执行一个简单的 mvn clean package,您可以在运行期间在输出中看到目标。如下所示:
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ xsd ---