Skip to content

When using -am more modules are built than the user might expect #44

Description

@famod

Given a project with four modules A, B, C and D:

  • B and C depend on A
  • D depends on B and C
  • B contains changed/added files
  • A, C and D are unchanged
  • -am is used

then this extension behaves differently than what one might expect:

  • the extension reduces the project list to B and D
  • B because it contains changes
  • D because it depends on B
  • Maven applies -am to the project list: B and D
  • Maven ends up building everthing A (ok, upstream of B), B (ok, changed), D (ok, downstream of B) but also C because D depends on C

In other words this extension is effectively calling mvn ... -pl :B,:D -am whereas a user without this extension would probably call mvn ... -pl :B -am -amd which would only build A, B and D.

I have to add that the current "wider" approach is not entirely wrong or useless! In fact I do need it in a Jenkins pull request (PR) pipeline job which merges the PR with the target branch (I can elaborate more in detail if needed).

So I'd suggest we make this behaviour configurable. Ideas for the property name?

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions