我尝试使用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应用程序作为战争
答案 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项目。