Gradle multi project build — substituting jar dependencies

We got around to producing the frame and began to decouple pieces of their first system into new standalone suites we chose to produce new Git repositories for every one of those packages.

This strategy is often referred to as zuul ci github. If you’re interested, you may read our post about plugins and components .

Problems with keeping more than 1 repository

Unexpectedly, there were many packages in our Github that had to be handled . It became far more challenging to create certain attributes which spanned over 1 repository.

By way of instance, if we were creating a new attribute (adding demonstration data) at a Heureka merchandise feed, you will find lots of actions to experience. Each of the modifications had to be completed in different Git branches initially, then afterwards merged and released following a code inspection.

Change a Plugin port (saved in a different repository), ie. Add new interface accountable for loading demonstrational information (see the perpetrate ).

From the Heureka merchandise feed (saved in another different repository), upgrade the composer.json dependence on the Plugin port into the dev-> variant — notice: we did not wish to launch a new version of this Plugin port before it had been confirmed to be useful in the execution. Implement the port for loading presentation data.

From the Shopsys Framework center (additionally in a different repository, obviously ), upgrade the dependencies on the Plugin port and also on the Heureka merchandise feed also, and apply the logic of loading demonstration data.

Do a code inspection, be sure everything functions and was created correctly.

Blend the Git branch together with the newest Plugin port (in its repository) and launch a new edition.Blend the Git branch together with demonstration data in the Heureka merchandise feed (in its repository) and launch a new edition.In most packs, upgrade dependencies from composer.json out of dev-* into the newest releases.

Leave a Reply

Your email address will not be published. Required fields are marked *