22

maven-release-plugin を実行しようとすると、 pom.xml ファイルのバージョンが変更されます。maven リリースの前は、すべての行末が UNIX スタイルです<lf>が、Windows マシンで実行した後、プラグインはファイル内のすべての行を<cr><lf>.

私の質問は次のとおりです。

a)すべてをそのままにしておくか、特定の行末を使用するようにmavenに指示する方法はありますか

また

b) 行末がどうあるべきかをウィンドウに伝える一般的な方法はありますか? OS の奥深くで何かをハッキングするツールでさえ、役立つと考えられます。

このhttps://issues.jfrog.org/jira/browse/BI-111を見たところ、「解決済み」と表示されていますが、最新バージョンを使用していて、うまくいきません。

4

4 に答える 4

7

考えられる解決策は 4 つあります。

  1. Maven アセンブリ プラグインを使用する

Maven assembly pluginを調査するのが最善のアイデアだと思います。行区切りを更新できるようにする必要があります。詳細については、セクション「fileSet」セクションを参照してください。

  1. PowerShell を使用して呼び出すmvn

一時的な回避策として、PowerShell ([スタート] -> [すべてのプログラム] -> [アクセサリ] -> [Windows PowerShell]) を使用できます。-D ステートメントを二重引用符で囲んで、maven を呼び出します。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");
  1. Linux VM をビルドします。

Windows の互換性の問題を修正しないオプションがありますが、コアの問題は解決するはずです。小規模な VirtualBox Linux サーバーの作成を検討してください。インターネット アクセスには、単純な NAT 接続で十分です。このマシンに Maven、Java などをインストールします。その上に構築します。Linux であるため、行区切りは「\n」のみにする必要があります。VM には 256 ~ 512 MB の RAM と 20 GB のストレージ スペースが必要です (Linux + 多くの可能性のある Maven 依存関係)。最終的に気に入った場合は、Jenkins のような継続的インテグレーション製品を収容するように拡張することもできます。

于 2015-02-16T19:34:56.293 に答える
1

私の回避策は、SVN Property: を使用することですsvn:eol-style=native。そのため、SVNpom.xmlは更新またはコミット時に「変換」します。

于 2015-03-03T17:06:21.153 に答える