Hey just looking for Maven best practices here, want to be sure I'm not
missing something.

Here is our use case.

We have 10 applications that have duplicate code in each, we want to create
component(s) for the duplicate code and not duplicate in the 10 apps/GIT
any longer.

Each app is in a separate GIT repository & each has a Maven build.  Simple
single module build in each.

To solve this I am assuming we need a new GIT repo for the duplicate code
and a Maven build for it.  That repo and it's component would be released
and then the 10 apps would then depend on that released artifact (SNAPSHOT
until release).

However I have someone here that is saying he wants to not create any other
GIT repo and just make child modules in one of the 10 apps for the shared
code then have the other 9 apps depend on the child module GAV.

However with this approach we would have to 'release' App 1 to get a
release version and then update the other 9 apps to use that app's version
for the component, right?  It seems it causes releasably issues for the
component as no other app can be released until App1 is released first,
correct?

What is the normal pattern in the Maven world when a company wants to share
components between apps when the applications are in separate GIT repos and
therefore have separate Maven builds?

-Dave

Reply via email to