私のプロジェクトを構造化する正しい方法と、それをどのように構成して個々のコンポーネントをすべてビルド/テスト/コマンドをビルドする?Mavenで共有ライブラリを使用してプロジェクトを整理するにはどうすればいいですか?
私は複数のモジュールを含むMavenプロジェクトを持っています - Springアプリケーションとそれらの間で依存関係として共有される "ライブラリ"。ライブラリと一緒にすべてのアプリケーションをビルドできるようにして、モジュールのいずれかが変更されたとき(libまたはapp)に統合テストを実行できるようにしたい。
理想的には、各コンポーネントをコンパイルし、アプリケーション/ライブラリごとに単体テストを実行し、統合テストを実行し、各コンポーネントを実行可能なjarにパッケージ化することができます。ある時点で、このプロセスは、より高度なシステムテストを実行するJenkinsサーバー上で実行されます。
現在、私はmvn clean install spring-boot:repackage
を使用しています。これはアプリごとに個別に動作します。実行中はMain Project/App1/
です。しかし、私がプロジェクトルートMain Project/
から実行すると、ライブラリにmain-classがないため、ライブラリがspring-repackageされないというエラーが出ます。これはライブラリです。エントリポイントは必要ありません。
これは、Mavenでマルチアプリケーションプロジェクトを構築する正しい方法ですか、何か非常に間違っていますか?
プロジェクト構造がある:代わりに、コマンドラインでゴールを実行しているの
Main Project
|-SharedLibrary/
|-src/
|-pom.xml
|-App1/
|-src/
|-pom.xml
|-App2/
|-src/
|-pom.xml
|-App3/
|-src/
|-pom.xml
|-pom.xml
メインプロジェクトのPOMにモジュールとしてアプリケーションを追加しましたか? – Christian
こんにちはクリスチャン、はい、メインプロジェクトに対して 'mvn clean install'を実行すると、すべてのテストが実行されます。しかし、ライブラリアーチファクトだけが正しくビルドされます。他のものは 'mvn clean install spring-boot:repackage'でビルドする必要があります。 –