2016-08-17 3 views
4

私はSpring Boot 1.4.0にアップグレードしました。私のMavenプロジェクトはコンパイルされません。ここでシナリオは次のとおりです。私はモジュール2をコンパイルすると私はマルチブートプロジェクトを壊しました。おそらくjarのレイアウト変更のためです。

  • モジュール1 /春ブーツ
  • モジュール2 /春ブーツモジュール1

に依存して、私は、パッケージ/クラスが行うことをエラーを受け取ります存在しない(モジュール1に存在する)。 Mavenはクラスパッチを正しく設定しました(モジュール1のターゲットからのjarが含まれています)。

私がSpring Boot 1.3.6に変更すると、問題なくコンパイルされます。

私はSpring Boot 1.4のリリースノートをチェックしましたが、この領域で実行するアクションに関する情報はありません。

あなたはSpring Boot 1.4で同じ動作を観察しましたか?

私は、このような構成でテストを実行できます。どちらのモジュールもマイクロサービスであり、モジュール1を別のマイクロサービスとして起動することなく実行したいモジュール2のテストがあります。

答えて

5

モジュール2の依存関係として、モジュール1のファットジャーを使用しています。基本的に、モジュール1の完全なアプリケーションをモジュール2に埋め込んでいます。

1.4では、クラスがBOOT-INF/classesに移動したため、クラスが見つからないようになりました。私はあなたのプロジェクトのセットアップが壊れていることを知らせるためには素晴らしい副作用だと思います。

モジュール1の場合、通常のjarとアプリケーションjar(本当に必要な場合)の両方を生成する必要があります。モジュール1はアプリですか?そうでない場合は、spring-boot-maven-pluginを無効にします。そうであれば、configure the classifier option to generate two jars

+0

等価とは何ですか? – rajadilipkolli

+1

こんにちは@stephaneモジュール2がモジュール1のアプリ用のキュウリの統合テストである場合、あなたのアドバイスは何ですか?キュウバーのモジュール2でモジュール1をどのように実行しますか? –

3

レイアウトをMODULEに変更すると、ZIPレイアウトは1.4.xで変更されたようです。 ZIPレイアウトはすべてのプロジェクトクラスをBOOT-INF/classe/**の下に置きます。モジュールはクラスをルートに配置します。

関連する問題