Skip to content

Conversation

@rmuir
Copy link
Contributor

@rmuir rmuir commented Dec 8, 2015

This is the backport of #15233 but for maven.

It has the same filesystem layout and semantics.

The way it works in maven is, most plugin logic moves to modules/pom.xml, and plugin is a child of that, only it overrides integ logic to call install-plugin instead of install-module.

distributions for each packaging format (except integ-zip) basically just unpack modules into their modules/ directory.

The oddities/hacks/etc needed (IMO these are minor and such things are expected):

  • Modules pom has a unnecessary project-level dependency on the integ-zip, that forces proper build order in the "nuclear reactor".
  • Distribution pom requires distributions to "opt-in" to modules by enabling them for their specific distro. This way it itself does not depend on them and the integ-zip works, no loops, no downloading.
  • Licensing works different than gradle, we inspect packaging here for the check. our module.jars are not third party dependencies: we have to generate an ignore pattern for them.
  • Licensing for modules gets "duplicated": its specified in the module itself and in the distribution. We could disable it for modules, but since I think publishing artifacts for these is unavoidable with maven, and since the license-checker is packaging-based, its correct.

@rmuir rmuir added the v2.2.0 label Dec 8, 2015
@nik9000
Copy link
Member

nik9000 commented Dec 8, 2015

I've added this to the top of my review.

@nik9000
Copy link
Member

nik9000 commented Dec 8, 2015

Modules pom has a unnecessary project-level dependency on the integ-zip, that forces proper build order in the "nuclear reactor".
Distribution pom requires distributions to "opt-in" to modules by enabling them for their specific distro. This way it itself does not depend on them and the integ-zip works, no loops, no downloading.
Licensing works different than gradle, we inspect packaging here for the check. our module.jars are not third party dependencies: we have to generate an ignore pattern for them.
Licensing for modules gets "duplicated": its specified in the module itself and in the distribution. We could disable it for modules, but since I think publishing artifacts for these is unavoidable with maven, and since the license-checker is packaging-based, its correct.

These are all hacks that I expected to get this working in maven.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

opinionated type still persists.

@nik9000
Copy link
Member

nik9000 commented Dec 8, 2015

LGTM. Thanks for the tour of the hacks.

@nik9000 nik9000 added the :Delivery/Build Build or test infrastructure label Dec 8, 2015
@rmuir
Copy link
Contributor Author

rmuir commented Dec 8, 2015

Thanks for looking this over @nik9000 !

rmuir added a commit that referenced this pull request Dec 8, 2015
@rmuir rmuir merged commit 1c06386 into elastic:2.x Dec 8, 2015
brwe added a commit to brwe/elasticsearch that referenced this pull request Dec 14, 2015
@mark-vieira mark-vieira added the Team:Delivery Meta label for Delivery team label Nov 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

:Delivery/Build Build or test infrastructure Team:Delivery Meta label for Delivery team v2.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants