Проблемы с версией Flex-Mojo / Flex-компилятора для Flex 4.1 и maven2 - PullRequest
0 голосов
/ 26 июня 2010

Пользовательский интерфейс моих проектов построен с использованием Flex4.1. Я использую maven2 и пытаюсь выяснить, какую версию flex-mojo следует использовать для компиляции.

Я пытался со следующим,

<flex.sdk.version>4.1.0.16076</flex.sdk.version>
<flex.mojo.version>3.6.1</flex.mojo.version>

но у меня проблемы ...

[INFO] Flex compiler and flex framework versions doesn't match. Compiler: '3.2.0.3958' - Framework: '4.1.0.16076'. You can use 'ignoreVersionIssues' to disable this check. Please refer to Flexmojos maven doc. If you prefer fixing it instead of ignoring, take a look at: <a href="https://docs.sonatype.org/display/FLEXMOJOS/How+to+set+Flex+SDK+version" rel="nofollow noreferrer">https://docs.sonatype.org/display/FLEXMOJOS/How+to+set+Flex+SDK+version</a> [INFO] ------------------------------------------------------------------------ [INFO] Trace org.apache.maven.BuildFailureException: Flex compiler and flex framework versions doesn't match. Compiler: '3.2.0.3958' - Framework: '4.1.0.16076'. You can use 'ignoreVersionIssues' to disable this check. Please refer to Flexmojos maven doc. If you prefer fixing it instead of ignoring, take a look at: <a href="https://docs.sonatype.org/display/FLEXMOJOS/How+to+set+Flex+SDK+version" rel="nofollow noreferrer">https://docs.sonatype.org/display/FLEXMOJOS/How+to+set+Flex+SDK+version</a> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:699) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:519) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137) at org.apache.maven.cli.MavenCli.main(MavenCli.java:356) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.plugin.MojoFailureException: Flex compiler and flex framework versions doesn't match. Compiler: '3.2.0.3958' - Framework: '4.1.0.16076'. You can use 'ignoreVersionIssues' to disable this check. Please refer to Flexmojos maven doc.

Не слишком уверен, почему он ссылается на версию компилятора как «3.2.0.3958», хотя я определил версию компилятора так же, как «flex.sdk.version». Мой плагин выглядит как

       <plugin>
            <groupId>org.sonatype.flexmojos</groupId>
            <artifactId>flexmojos-maven-plugin</artifactId>  
            <version>${flex.mojo.version}</version>  
            <extensions>true</extensions>
            <configuration>
                <!--
                <linkReport>true</linkReport>
                <configurationReport>true</configurationReport>
                -->
                <locales>
                    <param>en_US</param>
                </locales>
                <sourcePaths>
                    <path>${project.build.sourceDirectory}</path>
                </sourcePaths>
                <contextRoot>${project.parent.artifactId}</contextRoot>
                <showWarnings>false</showWarnings>
                <debug>true</debug>
                <keepGeneratedActionscript>false</keepGeneratedActionscript>
                <incremental>true</incremental>
                <!-- <ignoreVersionIssues>true</ignoreVersionIssues> -->
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>com.adobe.flex</groupId>
                    <artifactId>compiler</artifactId>
                    <version>${flex.sdk.version}</version>
                    <type>pom</type>
                </dependency>
            </dependencies>
        </plugin>

Может кто-нибудь помочь ??

Ответы [ 2 ]

0 голосов
/ 26 июня 2010

Ну, я провел большую часть дня, пытаясь понять то же самое. Наконец я наткнулся на это:

Поскольку flexmojos является расширением, оно будет загружено перед сборкой начать выделять поддержку упаковки SWC / SWF в память.

Я решил, что что-то еще в проекте (что огромно) настраивает flexmojo для flex4 (я пытался создать старый модуль flex3), и я получал этот плагин, сконфигурированный в памяти. Итак, я нашел другой компонент flex3, который собирался правильно, и изменил мою версию flexmojo, чтобы она соответствовала этой. Это сработало. Имеет смысл, что maven должен будет хранить экземпляр плагина в памяти для каждой версии этого плагина.

Итак, попробуйте изменить номер версии flexmojo (я изменил с 1.6.1 до 1.5.0)

Спасибо

0 голосов
/ 26 июня 2010

Попробуйте это

<?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>

<parent>
    <groupId>org.springframework.flex.samples</groupId>
    <artifactId>spring-flex-testdrive</artifactId>
    <version>1.0.3.RELEASE</version>
</parent>

<artifactId>collaboration</artifactId>
<packaging>swf</packaging>

<name>Collaboration Sample</name>

<build>
    <finalName>collaboration</finalName>
    <sourceDirectory>src/main/flex</sourceDirectory>
    <testSourceDirectory>src/test/flex</testSourceDirectory>
    <plugins>
        <plugin>
            <groupId>org.sonatype.flexmojos</groupId>
            <artifactId>flexmojos-maven-plugin</artifactId>
            <version>3.6.1</version>
            <extensions>true</extensions>
            <executions>
              <execution>
                <goals>
                  <goal>wrapper</goal>
                </goals>
              </execution>
            </executions>

            <configuration>
                <output>${basedir}/../testdrive/src/main/webapp/${project.build.finalName}/${project.build.finalName}.swf</output>
                <services>${basedir}/../testdrive/src/main/webapp/WEB-INF/flex/services-config.xml</services>
                <contextRoot>/testdrive</contextRoot>
                <locales>
                    <locale>en_US</locale>
                </locales>
                 <targetPlayer>10.0.0</targetPlayer> 
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>com.adobe.flex</groupId>
                    <artifactId>compiler</artifactId>
                    <version>4.0.0.14159</version>
                    <type>pom</type>
                </dependency>
            </dependencies>

        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>com.adobe.flex.framework</groupId>
        <artifactId>flex-framework</artifactId>
        <version>4.0.0.14159</version>
        <type>pom</type>
    </dependency>


    <!-- flexmojos Unit testing support -->
    <!--
        <dependency> <groupId>org.sonatype.flexmojos</groupId>
        <artifactId>flexmojos-unittest-support</artifactId>
        <version>3.2.0</version> <type>swc</type> <scope>test</scope>
        </dependency>
    -->
</dependencies>

 </project>
...