簡體   English   中英

Flexmojos-maven-plugin-如何配置多個源mxml文件以生成多個swf文件?

[英]Flexmojos-maven-plugin - How to configure multiple source mxml files to generate multiple swf files?

當前工作代碼:

我能夠成功使用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而不是Main.mxml生成“ swf”。

您能否提供其他建議,以使用單個pom / maven構建為相應的mxml文件生成單獨的swf文件?

經過大量的研發,嘗試了一些技巧之后,並根據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”,否則將無法識別源文件。 有關將引發的錯誤的更多信息,請參閱上面我在討論該錯誤時所給出的論壇鏈接。

希望有一天能對某人有所幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM