代码之家  ›  专栏  ›  技术社区  ›  nash

灵活蚂蚁任务问题

  •  1
  • nash  · 技术社区  · 15 年前

    当我尝试构建一个使用flex的项目时,如果flex sdk在一个驱动器上,而项目文件在另一个驱动器上,那么在Ant中会出现以下错误:

    [mxmlc] java.lang.NoClassDefFoundError: flex2/tools/Compiler
    [mxmlc] Exception in thread "main"
    

    这似乎是flex mxmlc ant任务的问题。有人知道这一切的根本原因吗?如果我把flex-sdk移到项目文件夹中,它会起作用,但我不喜欢被这样的黑客攻击…

    蚂蚁在详细模式下给出:

    compile.main:
    dropping E:\c from path as it doesn't exist
    dropping E:\programs\flex-sdk\lib\mxmlc.jar from path as it doesn't exist
        [mxmlc] java.lang.NoClassDefFoundError: flex2/tools/Compiler
        [mxmlc] Exception in thread "main" 
      [antcall] Exiting E:\svn\trunk\dev\modules\web\webapps\lpjserver\lpjserver-build.xml.
    
    BUILD FAILED
    E:\svn\trunk\dev\modules\web\webapps\lpjserver\lpjserver-build.xml:379: The following error occurred while executing this line:
    E:\svn\trunk\dev\modules\web\webapps\lpjserver\lpjserver-build.xml:199: mxmlc task failed.
        at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:508)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:418)
        at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    Caused by: E:\svn\trunk\dev\modules\web\webapps\lpjserver\lpjserver-build.xml:199: mxmlc task failed.
        at flex.ant.FlexTask.executeOutOfProcess(FlexTask.java:253)
        at flex.ant.FlexTask.execute(FlexTask.java:223)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
        ... 17 more
    --- Nested Exception ---
    E:\svn\trunk\dev\modules\web\webapps\lpjserver\lpjserver-build.xml:199: mxmlc task failed.
        at flex.ant.FlexTask.executeOutOfProcess(FlexTask.java:253)
        at flex.ant.FlexTask.execute(FlexTask.java:223)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
        at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    
    4 回复  |  直到 14 年前
        1
  •  1
  •   Ivan Nevostruev    15 年前

    你放了吗? flexTasks.jar 进入之内 lib 您的Ant安装文件夹?

    在我的情况下,我复制了 D:\Flex_sdk_3.3.0\ant\lib\flexTasks.jar 进入之内 D:\apache-ant-1.7.1\lib\

        2
  •  1
  •   nash    15 年前

    我确定这实际上是flex ant任务中的一个bug。flextask.java没有在Windows计算机上跨多个驱动器执行正确的路径。

        3
  •  1
  •   martin clayton egrunin    14 年前

    在某个地方,有一条路径前面没有驱动器号。所以,当你在“正确”的驱动器上时,它会工作,但不可能。

    我发现 this 博客文章-搜索 MXMLC= 在文本中-有人找到了一个针对Mac安装的解决方案,引发了相同的异常。你也许能够适应这种情况。(可能在安装和配置flex-mxmlc编译器时,不必在任何需要的地方都包含驱动器号。)

    与其移动或复制JAR,也许您可以在构建中将驱动器号作为属性添加到它的完整路径中,然后将其附加到类路径中。

        4
  •  0
  •   Alex Popov    15 年前

    将flex sdk/x.x文件夹复制到与源文件相同的驱动器上,调整flex.sdk.home ant变量并重新生成。