以上列表并非是Maven中所有可用打包类型。有许多打包格式在外部的项目和插件中可用:NAR(本地归档)打包类型,用来生成Adobe Flash和Flex内容的项目的SWF和SWC打包类型,以及很多其它类型。你也可以自定义打包类型,定制默认的生命周期目标来适应你自己项目的打包需求。
为了使用自定义的打包类型,你需要两样东西:一个定义了定制打包类型生命周期的插件,和一个包含该插件的仓库。有些定制打包类型是由中央Maven仓库中可用的插件定义的。这里有一个样例项目,它引用了Israfil Flex插件,使用自定义打包类型SWF根据Adobe Flex生成输出。
Example 10.3. 为Adobe Flex (SWF)定制打包类型
<project> ... <packaging>swf</packaging> ... <build> <plugins> <plugin> <groupId>net.israfil.mojo</groupId> <artifactId>maven-flex2-plugin</artifactId> <version>1.4-SNAPSHOT</version> <extensions>true</extensions> <configuration> <debug>true</debug> <flexHome>${flex.home}</flexHome> <useNetwork>true</useNetwork> <main>org/sonatype/mavenbook/Main.mxml</main> </configuration> </plugin> </plugins> </build> ... </project>
在???中,我们向你展示了如何使用自定义的生命周期创建你自己的打包类型。该样例应该能让你了解到,引用一个定制的打包类型你需要做些什么。你需要做的只是引用那个提供定制打包类型的插件。Israfil Flex插件是托管在Google Code的第三方Maven插件,要了解更多的关于此插件的信息,以及如何使用Maven编译Adobe Flex,访问http://code.google.com/p/israfil-mojo。该插件为SWF打包类型提供了如下的生命周期。