10.2.7. 其它打包类型

以上列表并非是Maven中所有可用打包类型。有许多打包格式在外部的项目和插件中可用:NAR(本地归档)打包类型,用来生成Adobe Flash和Flex内容的项目的SWFSWC打包类型,以及很多其它类型。你也可以自定义打包类型,定制默认的生命周期目标来适应你自己项目的打包需求。

为了使用自定义的打包类型,你需要两样东西:一个定义了定制打包类型生命周期的插件,和一个包含该插件的仓库。有些定制打包类型是由中央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打包类型提供了如下的生命周期。

Table 10.8. SWF打包的默认生命周期

生命周期阶段 目标
compile flex2:compile-swc
install install
deploy deploy