Maven和flex编译问题

时间:2010-10-20 20:01:37

标签: flex maven-2

我尝试使用maven-flex2-plugin插件与maven进行编译,这是我得到的错误:

D:\PROJECTS\flex\Reports>mvn clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Reports Maven Flex
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory D:\PROJEKTI\flex\Reports\target
[INFO] [flex2:compile-swf {execution: default-compile-swf}]
[INFO] Attaching licenses.
[INFO] Adding Extra Parameters: []
[INFO] Failed to invoke null with parameters: [+flexlib=C:\Program Files\Adobe\A
dobe Flash Builder 4\sdks\4.1.0\frameworks, -load-config, C:\Program Files\Adobe
\Adobe Flash Builder 4\sdks\4.1.0\frameworks\flex-config.xml, -source-path, D:\P
ROJEKTI\flex\Reports\src\main\flex, -output, D:\PROJEKTI\flex\Reports\target\Rep
orts-0.0.1-SNAPSHOT.swf, -compiler.locale, en_US, -use-network, -compiler.debug=
false, --, Main.mxml]
[INFO] java.lang.ClassNotFoundException: flex2.tools.Compiler
[INFO]  at java.net.URLClassLoader$1.run(Unknown Source)
[INFO]  at java.security.AccessController.doPrivileged(Native Method)
[INFO]  at java.net.URLClassLoader.findClass(Unknown Source)
[INFO]  at java.lang.ClassLoader.loadClass(Unknown Source)
[INFO]  at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[INFO]  at java.lang.ClassLoader.loadClass(Unknown Source)
[INFO]  at net.israfil.mojo.flex2.StreamedParameterExecutableWrapper.main(Stream
edParameterExecutableWrapper.java:58)
[INFO] Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNot
FoundException: flex2.tools.Compiler
[INFO]  at net.israfil.mojo.flex2.StreamedParameterExecutableWrapper.main(Stream
edParameterExecutableWrapper.java:66)
[INFO] Caused by: java.lang.ClassNotFoundException: flex2.tools.Compiler
[INFO]  at java.net.URLClassLoader$1.run(Unknown Source)
[INFO]  at java.security.AccessController.doPrivileged(Native Method)
[INFO]  at java.net.URLClassLoader.findClass(Unknown Source)
[INFO]  at java.lang.ClassLoader.loadClass(Unknown Source)
[INFO]  at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[INFO]  at java.lang.ClassLoader.loadClass(Unknown Source)
[INFO]  at net.israfil.mojo.flex2.StreamedParameterExecutableWrapper.main(Stream
edParameterExecutableWrapper.java:58)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Result of flex2.tools.Compiler execution is: '1'.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Wed Oct 20 21:57:20 CEST 2010
[INFO] Final Memory: 8M/19M
[INFO] ------------------------------------------------------------------------

这是我的pom:

<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.flex</groupId>
  <artifactId>Reports</artifactId>
  <packaging>swf</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>Reports Maven Flex</name>
  <url>http://maven.apache.org</url>

  <properties>
    <flex.home>C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.1.0</flex.home>
  </properties>
  <build>
    <sourceDirectory>src/main/flex</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>net.israfil.mojo</groupId>
        <artifactId>maven-flex2-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <flexHome>${flex.home}</flexHome>
          <useNetwork>true</useNetwork>
          <main>Main.mxml</main>
        </configuration>
      </plugin>
    </plugins>
    <defaultGoal>install</defaultGoal>
  </build>
</project>

有没有人遇到过这个问题?有解决方案吗?有没有更好的办法?我想在服务器上运行我的flex应用程序作为战争

2 个答案:

答案 0 :(得分:1)

我不会告诉你如何解决你的问题,但我会告诉你一些关于开发Flex应用程序的经验。 (我们为银行开发了巨大的Flex应用程序。)

在一开始我们也尝试采用maven来实现一切(maven确实是很棒的工具)。我们尝试过flex-mojos和其他插件,但每个插件都有我们无法克服的问题。

所以,现在我们的最佳做法如下:  我们将maven用于以下方法:检索依赖项,将工件安装到本地存储库并部署到远程存储库,但是对于我使用ant的所有其他任务。我们的脚本在Mac和Windows上运行。它们比例如flex-mojos消耗更少的内存(当你想编译很多模块时这很重要)。他们完全支持CI服务器,到目前为止它似乎是最好的解决方案。

因此,为了节省您的时间 - 尝试使用ant而不是maven进行编译和测试。 (Flex SDK附带了您可以使用的Ant任务)。

Flex,Maven和Ant的最佳选择!

答案 1 :(得分:0)

只需快速浏览一下maven-flex2项目页面,似乎这个插件只是为了构建Flex2项目(该项目最后一次更新于2008年)。这可能是你的问题,因为你是链接到Flex4 sdk。

我同意弗洛里安的建议:FlexMojos。启动和运行需要一些工作,但是当它工作时,它运行良好。我们一直用它来构建我们所有的Flex / AIR项目。