我使用Flex 3.5.0.12683和hudson CI服务器和Ant来编译我们的项目。在为这个项目编译资源包时,我遇到了问题。错误:null,同时在Linux下使用hudson编译资源包
用root用户的一切编译成功,但是当我试图编译我的Flex项目哈德森(蚂蚁),它失败:
compile_resource:
[mxmlc] Loading configuration file /opt/lib/flex3.5/frameworks/flex-config.xml
[mxmlc] Error: null
[mxmlc]
[mxmlc] java.lang.NullPointerException
[mxmlc] at flex2.tools.CommandLineConfiguration.compilingResourceModule(CommandLineConfiguration.java:70)
[mxmlc] at flex2.tools.CommandLineConfiguration.getTargetFile(CommandLineConfiguration.java:45)
[mxmlc] at flex2.tools.CommandLineConfiguration.validate(CommandLineConfiguration.java:97)
[mxmlc] at flex2.tools.Compiler.processConfiguration(Compiler.java:672)
[mxmlc] at flex2.tools.Compiler.processConfiguration(Compiler.java:526)
[mxmlc] at flex2.tools.Compiler.mxmlc(Compiler.java:84)
[mxmlc] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[mxmlc] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[mxmlc] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[mxmlc] at java.lang.reflect.Method.invoke(Method.java:616)
[mxmlc] at flex.ant.FlexTask.executeInProcess(FlexTask.java:283)
[mxmlc] at flex.ant.FlexTask.execute(FlexTask.java:225)
[mxmlc] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[mxmlc] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[mxmlc] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[mxmlc] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[mxmlc] at java.lang.reflect.Method.invoke(Method.java:616)
[mxmlc] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[mxmlc] at org.apache.tools.ant.Task.perform(Task.java:348)
[mxmlc] at org.apache.tools.ant.Target.execute(Target.java:390)
[mxmlc] at org.apache.tools.ant.Target.performTasks(Target.java:411)
[mxmlc] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360)
[mxmlc] at org.apache.tools.ant.Project.executeTarget(Project.java:1329)
[mxmlc] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[mxmlc] at org.apache.tools.ant.Project.executeTargets(Project.java:1212)
[mxmlc] at org.apache.tools.ant.Main.runBuild(Main.java:801)
[mxmlc] at org.apache.tools.ant.Main.startAnt(Main.java:218)
[mxmlc] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
[mxmlc] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
看起来有一些权限失败,但我想不出什么因为编译器没有太多的输出。
也只是看着CommandLineConfiguration.java文件,发现没有行: resourceModulePath = I18 nUtils.getGeneratedResourceModule(本).getPath(); 似乎是编译器无法找到资源存储在简单的用户 – 2010-10-05 11:35:52
所以我猜无论用户哈德森在运行,它没有一些权限来访问所需的路径。 – 2010-10-07 12:43:44
是的,似乎是这样。目前通过将hudson添加到具有运行mxmlc和compc权限的sudoers文件来解决此问题。但是,确定这不是真正的解决方案。 – 2010-10-07 14:01:31