问题现象:搭建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",再次运行