2

既存の Spring MVC アプリケーションを Spring Boot アプリケーションに移行しようとしています。既存のアプリケーションは 3.2.9 を使用しているため、大量の XML 構成が必要です。すべての Bean は XML ファイルで定義されています。Spring Boot は Spring 4 バージョンでのみ動作するため、最初に既存のアプリケーションを Spring 4.2.5 バージョンにアップグレードしました。

私たちの要件は、ビルドから FAT JAR と WAR ファイルの両方を持つことです。既存の顧客のほとんどは Application Server の展開を希望するため、WAR ファイルを作成する必要があります。また、内部テストと新しい展開のために、FAT JAR を使用する予定です。

Mavenファイルでそれらをどのように実現できますか。以下のように個別に提供できます。単一のビルドで両方を生成する Maven プラグインはありますか?

<packaging>jar</packaging>

また

<packaging>war</packaging>

アーティファクトを Nexus リポジトリに公開しています。そのため、JAR ファイルと WAR ファイル用に別のリポジトリの場所が必要です。単一のpom.xmlファイルを使用してそれを行うことはできますか?

WEB-INFまた別の質問ですが、フォルダーの下にすべての XML 構成があります。Spring Boot アプリケーションに移動するときは、resourcesフォルダーの下にある必要があります。どうすればそれらを簡単に処理できますか。WEB-INFFAT jar をビルドするときは、単にwebappプロジェクトを無視するため、リソースは参照されません。

移行を完了するためのガイダンスを楽しみにしています。実際、私たちはすでにその変更を行っており、正常に動作していますが、この WAR / JAR 世代については混乱しています。

更新: 既存のアプリケーションをスプリング ブートに変換する場合、Web アプリの WEB-INF フォルダーを維持する必要がありますか、それともすべてをリソース フォルダーに移動できますか? WAR ファイルのビルド中に、Spring Boot がリソースを WEB-INF に移動するかどうかを確認しますか? resourcesすべてのリソースをフォルダーの下に配置している場合、Spring Boot が WAR ファイルを作成する方法。

4

2 に答える 2

3

WAR および FAT JAR のビルドは、Gradle を使用すると非常に簡単です。

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

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

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

構成ファイルの場所については、src/main/resourcesSpring Boot の規則に従って、それらをサブフォルダーまたはそのサブフォルダーに配置するだけです。Spring Boot は独断的なフレームワークであり、デフォルトに抵抗しようとしないのであれば、最も使いやすいでしょう。

于 2016-04-05T08:45:45.227 に答える
2

Maven はこれを適切に処理しませんが、解決するのは決して難しいことではありません。3つのpomファイルでこれを行うことができます。構成の大部分を含む 1 つの親 pom と、作業のパッケージ化部分ごとに 1 つ。これにより、2 つの異なるアセンブリ パターンの懸念事項もきれいに分離されます。

明確にするために、ここではマルチモジュール構成をお勧めしません。war-pom.xml や fat-jar-pom.xml のような名前の複数の pom と、parent-pom.xml を使用するだけです。

于 2016-04-05T10:51:48.183 に答える