问题现象:搭建CI服务时,自动构建使用ant脚本编译时报错:Caused by: java.io.IOException: CreateProcess error=87, The parameter is incorrect,搜索发现https://community.oracle.com/thread/2245134?tstart=0 说这个问题是因为classpath 太长,考虑到这么jar文件好像可以理解
检查buld.xml,发现有配置项
fork="true"意义为ant会新建一个虚拟机来运行编译任务,那么问题来了,这会涉及进程间传参数,参考
https://support.microsoft.com/zh-cn/kb/830473,xp以上最长可支持8091,Win2000最长支持2047个,实际上在服务器上手动运行也一样报错,应该是目录层级太深导致参数过长,超过最长支持字符;
解决方法:删除build.xml中fork="true",再次运行

本文介绍了一种在使用Ant进行项目构建过程中遇到的编译错误及其解决方案。问题表现为classpath过长导致的参数传递错误,通过调整build.xml配置,取消新建虚拟机运行编译任务的方式,成功解决了该问题。

被折叠的 条评论
为什么被折叠?



