【发布时间】:2017-06-16 09:35:56
【问题描述】:
我正在使用mvn clean install 命令生成一个.jar 文件。这个 jar 文件包含一个 sh 脚本,它应该被移动到 /tmp,然后用于从 pdf 文件生成图像。
EDIT :文件并未真正移动。它是从 .jar 在我的 /tmp 中创建的。
.jar 文件是从 windows 生成的,但使用的是 redhat linux 生产服务器。
有时,脚本无法运行,因为它的十六进制标头似乎不正确(使用 vim 并输入 :%!xxd)。
在我的脚本的正确版本中,第一行如下所示:
0000000: 2321 2f62 696e 2f62 6173 680a 5044 4654 #!/bin/bash.PDFT
在不正确的版本中,你可以看到:
0000000: 2321 2f62 696e 2f62 6173 680d 0a50 4446 #!/bin/bash..PDF
如果没有十六进制,文件的开头看起来像这样(很明显):
#!/bin/bash
PDFTOPPM=pdftoppm
CONVERT=convert
LOG=/tmp/pdf2imgSh.log
有人遇到过这个问题吗? 如何强制我的 maven 安装(在 Windows 上)正确生成 jar 而不会在脚本中损坏标头?
这个问题对我来说有点模糊,所以不要犹豫,要求编辑或精确。
提前致谢。
【问题讨论】:
-
这是一个编码问题。你究竟是如何生成文件的?你用什么插件/代码?
-
如你所说
sometimes。如果您在 Windows 上使用 Git,请查看配置设置 core.safecrlf 和 core.autocrlf。