根据apache sdk失败,使用flex mojo构建maven flex项目

时间:2014-10-02 15:00:16

标签: apache maven flex flexmojos flex-mojos

我有一个mavenized flex项目,用adobe sdke 4.6构建得很好。 现在,我正在尝试用apache最近的sdk编译它。 我对sdk进行了编组,并在本地存储库中复制了依赖项。 我编写的apache版本是:4.13.0.20140701。

我的pom如下:

<properties>
        <flexmojos.version>7.0.1</flexmojos.version>
        <flex.version>4.13.0.20140701</flex.version>
        <flash.version>11.1</flash.version>
    </properties>

    <build>
        <sourceDirectory>src/main/flex</sourceDirectory>

        <plugins>
            <plugin>
                <groupId>net.flexmojos.oss</groupId>
                <artifactId>flexmojos-maven-plugin</artifactId>
                <version>${flexmojos.version}</version>
                <extensions>true</extensions>

                <configuration>
                    <debug>true</debug>
                    <sourceFile>ComptaFlex.mxml</sourceFile>
                    <services>${basedir}/src/main/flex/services/services-config.xml</services>
                    <compilerWarnings>
                        <warn-no-constructor>false</warn-no-constructor>
                    </compilerWarnings>
                </configuration>
                <dependencies>
                    <!-- This handles a bug in maven which causes problems with flex resources -->
                    <dependency>
                        <groupId>net.flexmojos.oss</groupId>
                        <artifactId>flexmojos-threadlocaltoolkit-wrapper</artifactId>
                        <version>${flexmojos.version}</version>
                    </dependency>
                    <!-- Without this FM will use the compiler configured in its master 
                        pom, which will result in version conflicts -->
                    <dependency>
                        <groupId>org.apache.flex</groupId>
                        <artifactId>compiler</artifactId>
                        <version>4.13.0.20140701</version>
                        <type>pom</type>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>

我的maven编译错误为:

xmojos.oss:flexmojos-flex-compiler:jar:7.0.1 -> net.flexmojos.oss:flexmojos-generator-internal-compiler-iface:jar:7.0.1 -> org.apache.flex:compiler:pom:4.12.1.20140427: Failed to read artifact descriptor for org.apache.flex:compiler:pom:4.12.1.20140427: Could not transfer artifact org.apache.

似乎flex mojo总是使用默认的apache版本并忽略我提供的。我怎么能用我给定的版本强制flexmojo构建。

3 个答案:

答案 0 :(得分:1)

Flexmojos-maven-plugin版本7.0.x使用FDK 4.12.1.20140427构建。这个FDK声明为对这个maven插件的依赖。 您首先需要对FDK 4.12.1.20140427进行mavenize并将其放到maven存储库中。只有在那之后你才可以对其他版本的FDK进行编组。

答案 1 :(得分:0)

肮脏的解决方法是更改​​flexmojo-parent pom文件:并手动编辑:

<flex.version>4.13.0.20140701</flex.version>

直到flexmojo开发者得到更好的响应。

答案 2 :(得分:0)

我最近写了很多文档,请查看:https://cwiki.apache.org/confluence/display/FLEX/Preparing+FDKs+for+Maven+builds

简短版本: 我们创建了一个maven扩展,它应该自动下载并安装Flex SDK,因为它们在maven构建中被引用。此外,Flexmojos 7.1.0-SNAPSHOT已更新为不再包含对任何FDK工件的引用。此外,我们现在使用3段版本,例如:4.14.1