Maven发布插件和Windows换行符

rea*_*sim 20 line-endings maven-release-plugin

当我尝试运行maven-release-plugin时,它会更改pom.xml文件中的版本.在maven发布之前,每一行结尾都有unix样式,<lf>但在我的windows机器上运行之后,插件会将文件中的每一行都更改为<cr><lf>.

我的问题是:

a)有没有办法告诉maven将所有内容保留原样或使用特定的行结尾

要么

b)是否有通用的方法告诉窗口结束应该是什么?即使是在操作系统中深陷内容的工具也会被认为是有用的.

我看了这个https://issues.jfrog.org/jira/browse/BI-111,它说"已解决",但我使用的是最新版本,但它对我不起作用.

Vir*_*ndi 6

有四种可能的解决方案.

  1. 使用Maven Assemly插件

我认为最好的想法是调查Maven程序集插件.它应该允许您更新行分隔符.见一节的详细信息,"文件集"一节.

  1. 使用PowerShell进行呼叫 mvn

作为临时工作,您可以使用PowerShell(开始 - >所有程序 - >附件 - > Windows PowerShell).像你一样调用maven,并在引用-D语句时引用一些额外内容.mvn assembly:assembly -P prod "-Dmaven.test.skip=true".现在添加到-Dline.separator =`n.这应该导致PowerShell添加转义值.

  1. "line.separator"在更新pom之前编写自己的插件以覆盖.

按照Maven指南创建一个简单的插件.它需要做的就是覆盖价值.配置插件以在pom修改之前的阶段执行.

System.getProperties().setProperty("line.separator", "\n");
Run Code Online (Sandbox Code Playgroud)
  1. 在Linux VM中构建.

有一个选项不能解决Windows兼容性问题,但应解决您的核心问题.看看创建小型VirtualBox Linux服务器.简单的NAT连接应该足以访问Internet.在这台机器上安装Maven,Java等.建立在它上面.因为它是Linux,行分隔符应该只是'\n'.VM需要256 - 512 MB的RAM和20 GB的存储空间(Linux +许多可能的Maven依赖项).如果您最终喜欢它,您甚至可以扩展它以容纳像Jenkins这样的持续集成产品.