我正在使用mvn clean install
命令生成.jar文件。此jar文件包含一个 sh脚本,它应该被移动到 / tmp ,然后用于从pdf文件生成图像。
编辑:文件并未真正移动。它是从.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而不会在脚本中打破标题?
这个问题对我来说有点模糊,所以不要犹豫要求编辑或精确。
提前致谢。
答案 0 :(得分:3)
关注@ h22回答和@SubOtpimal评论,我认为您可以强制maven编码特定文件&#39> EOL 。
将此插件添加到 pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>ant-test</id>
<phase>package</phase>
<configuration>
<tasks>
<fixcrlf srcdir="${basedir}/src/main/resources/yourfilepath" eol="unix" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
使用您自己的文件或文件夹更改路径。它以递归方式工作。小心不要忘记路径,否则会破坏你的罐子。 这可能会成功。希望这有帮助!
答案 1 :(得分:1)
版本因行结尾而异(Windows版和Linux版)。生成脚本的代码使用特定于平台的行尾终止符(0A对0D 0A)。
您可以在不更改代码的情况下更改行结束分隔符。按照here的说明设置默认的行尾终止符。配置系统属性可能有效,否则您可能需要编辑mvn
脚本。