以上列表并非是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打包类型提供了如下的生命周期。

