有四种可能的解决方案。
- 使用 Maven Assemly 插件
我认为最好的办法是调查Maven 程序集插件。它应该允许您更新行分隔符。有关详细信息,请参阅“fileSet”部分。
- 使用 PowerShell 调用
mvn
作为临时解决方法,您可以使用 PowerShell(开始->所有程序->附件->Windows PowerShell)。像你一样调用 maven,在双引号 -D 语句周围有一些额外的东西。mvn assembly:assembly -P prod "-Dmaven.test.skip=true"
. 现在添加到这个 -Dline.separator=`n。这应该会导致 PowerShell 添加转义值。
"line.separator"
在 pom 更新之前编写你自己的插件来覆盖。
按照Maven 指南创建一个简单的插件。它需要做的就是覆盖价值。将插件配置为在 pom 修改之前的阶段执行。
System.getProperties().setProperty("line.separator", "\n");
- 在 Linux 虚拟机中构建。
有一个选项不能纠正 Windows 兼容性问题,但应该可以解决您的核心问题。看看创建小型 VirtualBox Linux 服务器。一个简单的 NAT 连接应该足以访问 Internet。在这台机器上安装 Maven、Java 等。建立在它之上。因为它是 Linux,所以行分隔符应该只有 '\n'。VM 需要 256 - 512 MB 的 RAM 和 20 GB 的存储空间(Linux + 许多可能的 Maven 依赖项)。如果你最终喜欢它,你甚至可以扩展它以容纳像 Jenkins 这样的持续集成产品。