使用Maven将文件转换为UNIX格式

我有一个在Windows环境中开发的应用程序。 应用程序本身部署到Linux环境。 每次部署此应用程序时,我都必须使用dos2unix将可执行文件转换为UNIX格式。 我原本以为这是由Windows CP1252编码引起的,所以我更新了Maven将文件编码为UTF-8。 这并没有解决我的问题,我很快发现这与回车和换行有关,通过搜索这个网站。 有没有办法让Maven在构建过程中将所有文件转换为UNIX格式? 我正在使用Maven 2.2.1和Java 5。

您可以使用Maven antrun插件来调用fixcrlf ant任务:

 4.0.0 ant-test ant-test 1.0-SNAPSHOT jar    org.apache.maven.plugins maven-antrun-plugin   ant-test package       run        

程序集插件有一个lineEnding选项,可用于控制给定fileSet的文件的行尾。 这个参数正好可以做你想要的。 最终,您可以使用CRLF行构建zip存档,使用LF行构建tar.gz存档。

例如

 ...  ${basedir}/src/main/build/QA /bin  start.sh  unix  ... 

此时可能的值包括:

  • “保持” – 保留所有行结尾
  • “unix” – 使用Unix风格的行结尾(即“\ n”)
  • “lf” – 使用单个换行符行(即“\ n”)
  • “dos” – 使用DOS- / Windows样式的行结尾(即“\ r \ n”)
  • “windows” – 使用DOS / / Windows样式的行结尾(即“\ r \ n”)
  • “crlf” – 使用回车符,换行符行(即“\ r \ n”)