2

既存のSpring MVCアプリケーションをSpringBootアプリケーションに移行しようとしています。私たちの既存のアプリケーションは3.2.9を使用しているので、数多くのXML構成が使用されています。すべてのBeanはXMLファイルで定義されています。私たちが行ったことは、まず、既存のアプリケーションをSpring 4.2.5バージョンにアップグレードしました.Spring BootはSpring 4バージョンでのみ動作するからです。Mavenを使用したJARとWARのパッケージ化に関するSpringブート移行の問題

私たちの要件は、FAT JARとWARファイルの両方をビルドから取得することです。既存の顧客のほとんどは、Application Serverの導入を望んでいるため、そのためのWARファイルを作成する必要があります。また、当社の内部テストおよび新規導入のために、FAT JARを使用する予定です。

Mavenファイルでどのように達成できるのですか。以下のように別々に提供することができます。単一のビルドで両方を生成するためのプラグインはありますか?

<packaging>jar</packaging> 

または

<packaging>war</packaging> 

我々はネクサスリポジトリに私たちの成果物を公開しています。したがって、JARファイルとWARファイル用に別々のリポジトリ・ロケーションを作成する必要があります。単一のpom.xmlファイルを使用してそれを行うことはできますか?

また別の質問として、WEB-INFフォルダの下にあるすべてのXML設定があります。 Spring起動アプリケーションに移行するときは、resourcesフォルダの下にある必要があります。どうすれば簡単に処理できますか? FAT jarをビルドすると、WEB-INFのリソースは、webappプロジェクトを無視するだけなので、リソースは表示されません。

移行を完了するためのガイダンスをお待ちしております。事実、私たちはすでに変更を行っていますが、うまくいきますが、このWAR/JAR世代については混乱しています。

更新: 私たちは春ブーツに当社の既存のアプリケーションを変換する場合、私は、心の中で別の質問を持っている、我々はまだウェブアプリにWEB-INFフォルダを維持しなければならないのか、リソースにすべてを移動することができますフォルダ?。 WARファイルを作成する際に、スプリングブートがリソースをWEB-INFに移動するかどうか?すべてのリソースをresourcesフォルダの下に置いている場合は、WARファイルを作成するためのスプリングブートの管理方法。

+3

「戦争」を使って、両方をやろうとしないでください。 'war'も' jar'のように実行可能です。 –

答えて

2

ビルドWARとFAT JARはGradleで非常に簡単です。

Mavenでは、私はmulti module setupを試してみると、1つのサブモジュールがfat JARをビルドし、2番目がWARファイルをビルドします。

アプリケーションロジックは、3番目のサブモジュールとして使用できます。したがって、Spring構成とBeanを備えたスタンドアロンJARになります。このアプリケーションロジックJARは、fat JARおよびWARモジュールに依存します。 WAR固有の設定をMaven WARサブモジュールに配置することができます。

私はそのような要件を以前には持っていなかったので、どのような問題が発生するか分かりません。確かに私はmaven-assembly-pluginやその他のパッケージングプラグインをspring-boot-maven-pluginと統合しようとはしません。

設定ファイルの場所については、それをsrc/main/resourcesに置くか、Springブートの規則に従ってサブフォルダに入れてください。 Spring Bootは、主張されたフレームワークであり、あなたがデフォルトに抵抗しようとしないと、あなたに最も親しみやすいでしょう。

+0

答えをありがとう – Krishna

+0

私は春のブートに変換する場合、私たちはまだWEB-INFフォルダを維持する必要があり、リソースフォルダにすべてを移動することができます別の質問がありますか? – Krishna

+1

すべてをリソースフォルダに移動する必要があると思います。 – luboskrnac

2

Mavenはこれをうまく処理しませんが、それを解決するのは難しくありません。 3つのpomファイルでこれを行うことができます。大部分の構成を含む1つの親POM、および作業のパッケージ化部分にそれぞれ1つ。これは、2つの異なるアセンブリパターンの関心事もきちんと分けるでしょう。

明確にするために、ここではマルチモジュール設定を推奨していませんが、parent-pom.xmlとともにwar-pom.xmlやfat-jar-pom.xmlなどの名前を持つ複数のポムだけを推奨します。

+0

はい。私は同じことを私の心に持っています。複数のPOMファイルを作成する方が良いです。 – Krishna

+0

これは私が提案したものとどのように異なっていますか? – luboskrnac

+0

@luboskrnac:私はマルチモジュール設定を推奨していません。私は人工物作りのためだけにモジュールを用意するべきではないと思います。私は、あなたはwar-pom.xmlとfat-jar-pom.xmlをparent-pom.xmlと一緒に1つのモジュール用に持つべきだと思います。これを答えに加えて明確にします。 –

関連する問題