使用Flexmojos编译多个SWF文件并将它们安装到本地存储库中

时间:2013-04-18 16:07:05

标签: flexmojos

我正在尝试将主应用程序(.mxml)编译为SWF文件,并将许多CSS文件编译为SWF文件,以创建可在运行时加载的外观。

我用这个:

...
<execution>
    <id>default-compile-swf</id>
    <configuration>
        <sourceFile>./com/sim/tide/views/impls/application/Sim.mxml</sourceFile>
        <debug>true</debug>
        <services>${web.services.location}/services-config.xml</services>
    </configuration>
</execution>
<execution>
    <id>compile-css-black_is_mine</id>
    <phase>compile</phase>
    <goals>
        <goal>compile-swf</goal>
    </goals>
    <configuration>
        <finalName>black_is_mine</finalName>
        <sourceFile>../resources/styles/black_is_mine.css</sourceFile>                      
    </configuration>
</execution>
...

此代码似乎有效,因为在我的${project.build.directory}中我有2个SWF文件,一个用于我的应用程序,一个用于我的皮肤。

我的问题出现在install阶段。现在,它是我的SWF皮肤文件,它安装在我的本地存储库中,它不再是基于我的应用程序的SWF,但工件的名称仍然是我的应用程序皮肤的名称...总结一下,如果m.swf是我生成的基于我的应用程序文件和c.swf的SWF文件是基于我的css文件生成的SWF文件,目标install将在我的本地存储库上安装c.swf,名称为m.swf

我试图改变执行的配置,如下所示:

<execution>
     <id>default-install</id>
        <phase>install</phase>
        <goals>
          <goal>install</goal>
        </goals>            
        <configuration>                    
        <file>${project.build.directory}/${project.artifactId}-${sim-flex.version}.swf</file>
        </configuration>
      </execution>

选择要安装的正确SWF但不起作用......

那么如何使用Flexmojos编译我想要的多个SWF文件并将它们正确安装到本地存储库中呢?似乎只能安装一个SWF文件。

1 个答案:

答案 0 :(得分:0)

我发现了一个“hack”,只需将org.apache.maven.plugins:maven-install-plugin:install-file所需的SWF安装到我的本地存储库中,然后取消默认的安装目标:

<execution>
    <id>default-install</id>
    <phase>non_existing_phase</phase>
</execution> 

现在,这个目标永远不会被触发,因为它的有界阶段不存在。