現在、Spring を使用して複数の Web アプリケーションを開発しています。ビルドには Maven を使用し、バージョン管理には Git を使用しています。現時点では、すべての webapps で使用されるいくつかのものの開発を分割する方法を見つけようとしています。たとえば、すべてのプロジェクトで同じヘルパー クラスがいくつかあります。問題は、クラスだけでなく、リソース ファイルやある種の親 POM も使用したい一方で、リポジトリから独立して Git の恩恵を受けることができることです。
私はビルド システムを変更することに熱心ではありませんが、Maven の真のファンではありません。特に、継承と集約の概念は、今私を制約しているものです。ひょっとして、アイビーはオプションですか?
私のセットアップの概要を簡単に説明したいと思います。
いくつかのクラス、Spring 構成ファイル、およびテンプレート、画像、スタイル シートなどのその他のリソースを含む、ある種の親プロジェクトがあります。と呼びましょうbase
。これは完全な Spring Web アプリケーションではなく、デプロイされません。WARから継承base
し、WAR にパックする必要がある他のプロジェクトがいくつかあります。webapp1
それらを と と呼びましょうwebapp2
。
base
、webapp1
およびwebapp2
独自の Git リポジトリを持っています。
\
|
|- base.git (base's repository)
|
|- webapp1.git (webapp1's repository)
| \
| base (base used as a Git submodule)
|
|- webapp2.git (webapp2's repository)
\
base (base used as a Git submodule)
base
Git サブモジュールを使用して webapps 内から s コードを変更できるようにし、webappmvn package
のディレクトリ内を使用して各 webapp の完全に機能する WAR を構築できるようにしたいと考えています。
Maven のparent
またはmodule
このような動的なアプローチを許可しません。module
そのような使用方法がまったく見つかりませんでしたparent
。私のニーズに合わせて使用するのは複雑で静的です。変更するたびにbase
、新しいバージョンをリポジトリにプッシュして、Web アプリケーションが継承できるようにする必要があります。
Maven の継承を完全には理解していなかったのかもしれませんが、今はかなり迷っています。
誰かが成功して似たようなことを達成しましたか? どのビルドシステムをどのように使用しましたか?