众所周知,windows 和linux下的文件换行符是不一样的,linux为"\n" windows为"\r\n" ,所以Jfinal 打包后经常会出现由于换行符的差异导致启动脚本报错的问题,我通过查阅资料,发现可以通过以下方式解决:
jfinal 打包使用了maven assembly插件 ,可以通过以下配置在实际打包的时候对启动脚本进行换行符的转换
修改package.xml文件
<!-- 项目bin下面的脚本文件copy到 bin目录下 注意文件换行符设置--> <fileSet> <directory>${basedir}/bin</directory> <lineEnding>unix</lineEnding> <outputDirectory>bin</outputDirectory> <!-- 脚本文件在 linux下的权限设为755,无需chmod可直接运行 --> <fileMode>755</fileMode> <includes> <include>*.sh</include> </includes> </fileSet> <fileSet> <directory>${basedir}/bin</directory> <lineEnding>windows</lineEnding> <outputDirectory>bin</outputDirectory> <fileMode>755</fileMode> <includes> <include>*.bat</include> </includes> </fileSet>
同样资源文件的换行符可以这样设置,可以根据需要选择是否配置,通过以上配置再也不用担心换行符的问题了,可以愉快而放心的部署了