2017-07-30 5 views
0

私は単一の瓶にバンドルしようとしているSpringベースのweb-appを持っています。春のサブプロジェクトを1つの瓶にパッケージ化する

私は、プロジェクトをレイアウトする際に、複数のサブプロジェクトが含まれているルートプロジェクトを作成することを考えました。そこには、春の起動アプリケーションであるサブプロジェクトと、自分自身で作成されたサブプロジェクトコードは特定のビジネスロジックを処理します。

ので、構造のようなものに見えることがあります。私はちょうど

java -jar build/libs/RootJar.jar 

を行うことができますように、すべてのこれらのサブプロジェクトを持つ

/root 
build.gradle <- the problem is here, how I should write root project build script 
/spring-backend-subproject 
/other-business-subproject 

を、私は、1つのJARにそれらのすべてをパッケージ化したいですそうでなければ、私は実行する必要があります:

./gradlew bootRun 

"spring-boot"の特定のメインクラスを実行します。サブプロジェクト

すべてのサブプロジェクトjarを1つのjarにまとめる方法をオンラインで検索しています(Can Gradle jar multiple projects into one jar? )が、メインクラスが見つからないなどのエラーが発生することがあります"spring sub-project"フォルダ内でjarファイルを実行した場合やSpringApplicationクラスが見つからない場合)。

どうすればこの問題を解決できますか?

ありがとうございます!

答えて

1

このパターンを広く使用します。デプロイメントクラスをルートに配置するのではなく、他のモジュールを依存関係としてリストするモジュール(通常は-launcherと呼ぶ)を追加し、メインクラスと関連するアプリケーションコード(たとえば、application.propertiesなど)を追加します。

このモジュールはアーティファクトmy-project-launcher.jarを生成し、使用しているプラ​​ットフォームにこのモジュールをデプロイします。

+0

わかりました。ニースのソリューション、ありがとう! –

+0

しかし、私は1つの瓶を得ることができません –

関連する問題