【问题标题】:Flexmojos-maven-plugin - How to configure multiple source mxml files to generate multiple swf files?Flexmojos-maven-plugin - 如何配置多个源mxml文件生成多个swf文件?
【发布时间】:2018-02-07 11:01:47
【问题描述】:

当前工作代码:

我能够使用 flexmojos-maven-plugin 成功构建一个 flex 项目。但是,我只能在我的插件配置下提供一个“sourceFile”。请参阅下面我的工作 pom.xml,它从“src”目录正确构建 Main.mxml 文件。它成功地为 Main.mxml 生成 'swf' 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test</groupId>
    <artifactId>TA_UI_Test2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>swf</packaging>
    <name>TA_UI_Test2 Flex</name>

    <dependencies>
        <dependency>
            <groupId>com.adobe.flex.framework</groupId>
            <artifactId>playerglobal</artifactId>
            <version>10-3.3.0.4852</version>
            <type>swc</type>
        </dependency>
        <dependency>
            <groupId>com.adobe.flex.framework</groupId>
            <artifactId>rpc</artifactId>
            <version>4.5.1.21328</version>
            <type>swc</type>
        </dependency>
        <dependency>
            <groupId>com.adobe.flex.framework</groupId>
            <artifactId>framework</artifactId>
            <version>3.2.0.3958</version>
            <type>swc</type>
        </dependency>
        <dependency>
            <groupId>com.adobe.flex.framework</groupId>
            <artifactId>mx</artifactId>
            <version>4.5.0.19786</version>
            <type>pom</type>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>src</sourceDirectory>

        <plugins>
            <plugin>
                <groupId>org.sonatype.flexmojos</groupId>
                <artifactId>flexmojos-maven-plugin</artifactId>
                <version>3.8</version>
                <extensions>true</extensions>
                <configuration>
                    <sourceFile>Main.mxml</sourceFile>
                    <debug>true</debug>
                    <storepass/>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>com.adobe.flex</groupId>
                        <artifactId>compiler</artifactId>
                        <version>3.2.0.3958</version>
                        <type>pom</type>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>

    </build>

</project>

问题描述:

现在我的“src”目录下还有多个其他 mxml 文件,即一个“src”目录下的所有 mxml 文件。如何将它们添加到上面的插件中,它只需要在 sourceFile 配置中使用一个名称?

我尝试过的事情:

我尝试复制粘贴多个 flexmojos-maven-plugin 块,并且每个块都指定了不同的 sourceFile。然而,这并没有帮助,因为 maven 只是从 flexmojos-maven-plugin 的最后一个块生成最终的 'swf' 文件。例如。如果第一个插件块有 sourceFile Main.mxml,而第二个插件块有 sourceFile Secondary.mxml,那么将只为 Secondary.mxml 生成“swf”,而不为 Main.mxml 生成。

您能否提供任何其他建议以使用单个 pom/maven 构建为各个 mxml 文件生成单独的 swf 文件?

【问题讨论】:

    标签: maven apache-flex mxml flexmojos flex-mojos


    【解决方案1】:

    经过大量的研发,尝试了一些 hack,并基于 this 论坛上 Christofer Dutz 的宝贵建议,终于为上述问题提供了一个干净的解决方案。这是更新后的 pom.xml,它将为提供的源文件生成单独的 swf 文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.test</groupId>
        <artifactId>TA_UI_Test2</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>swf</packaging>
        <name>TA_UI_Test2 Flex</name>
    
        <dependencies>
            <dependency>
                <groupId>com.adobe.flex.framework</groupId>
                <artifactId>playerglobal</artifactId>
                <version>10-3.3.0.4852</version>
                <type>swc</type>
            </dependency>
            <dependency>
                <groupId>com.adobe.flex.framework</groupId>
                <artifactId>rpc</artifactId>
                <version>4.5.1.21328</version>
                <type>swc</type>
            </dependency>
            <dependency>
                <groupId>com.adobe.flex.framework</groupId>
                <artifactId>framework</artifactId>
                <version>3.2.0.3958</version>
                <type>swc</type>
            </dependency>
            <dependency>
                <groupId>com.adobe.flex.framework</groupId>
                <artifactId>mx</artifactId>
                <version>4.5.0.19786</version>
                <type>pom</type>
            </dependency>
        </dependencies>
    
        <build>
            <sourceDirectory>src</sourceDirectory>
    
            <plugins>
                <plugin>
                    <groupId>org.sonatype.flexmojos</groupId>
                    <artifactId>flexmojos-maven-plugin</artifactId>
                    <version>3.8</version>
                    <extensions>true</extensions>
                    <configuration>
                        <storepass></storepass>
                    </configuration>
                    <executions>
                        <execution>
                            <id>default-compile-swf</id> <!--DO NOT change this ID, else the plugin execution will fail.-->
                            <configuration>
                                <sourceFile>File1.mxml</sourceFile>
                                <debug>true</debug>
                                <output>${basedir}/target/File1.swf</output>
                            </configuration>
                            <goals>
                                <goal>compile-swf</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>default-compile-swf-2</id>
                            <configuration>
                                <sourceFile>File2.mxml</sourceFile>
                                <debug>true</debug>
                                <output>${basedir}/target/File2.swf</output>
                            </configuration>
                            <goals>
                                <goal>compile-swf</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>default-compile-swf-3</id>
                            <configuration>
                                <sourceFile>File3.mxml</sourceFile>
                                <debug>true</debug>
                                <output>${basedir}/target/File3.swf</output>
                            </configuration>
                            <goals>
                                <goal>compile-swf</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>com.adobe.flex</groupId>
                            <artifactId>compiler</artifactId>
                            <version>3.2.0.3958</version>
                            <type>pom</type>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
    
        </build>
    
    </project>
    

    重要提示:您必须将任何一个执行的 ID 提供为“default-compile-swf”,否则它将无法识别源文件。有关它将引发的错误的更多信息,请参阅上面我讨论过的论坛的链接。

    希望有一天这对某人有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多