考えられる解決策は 4 つあります。
- Maven アセンブリ プラグインを使用する
Maven assembly pluginを調査するのが最善のアイデアだと思います。行区切りを更新できるようにする必要があります。詳細については、セクション「fileSet」セクションを参照してください。
- PowerShell を使用して呼び出す
mvn
一時的な回避策として、PowerShell ([スタート] -> [すべてのプログラム] -> [アクセサリ] -> [Windows PowerShell]) を使用できます。-D ステートメントを二重引用符で囲んで、maven を呼び出します。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 VM をビルドします。
Windows の互換性の問題を修正しないオプションがありますが、コアの問題は解決するはずです。小規模な VirtualBox Linux サーバーの作成を検討してください。インターネット アクセスには、単純な NAT 接続で十分です。このマシンに Maven、Java などをインストールします。その上に構築します。Linux であるため、行区切りは「\n」のみにする必要があります。VM には 256 ~ 512 MB の RAM と 20 GB のストレージ スペースが必要です (Linux + 多くの可能性のある Maven 依存関係)。最終的に気に入った場合は、Jenkins のような継続的インテグレーション製品を収容するように拡張することもできます。