Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
As a user I want to skip repeated invocations of invoker:run goal when the sources have not changed so that incremental builds when the test projects are unmodified.
My team have been using the Maven Invoker Plugin’s run goal to package some sample test projects during pre-integration-test which we then use during integration tests. We’re not using it to test a maven plugin but it doesn’t feel like we’re straying very far from the intended use case. The approach works well but as we add more test projects the time taken for each increases as each test project is rebuilt, even when the test project hasn’t changed at all. People making changes to unrelated parts of the codebase don’t want to rebuild these test samples for every unrelated change they make.
As a result I’m thinking of adding an “updateOnly” (default false) configuration option modelled after the Maven Assembly Plugin’s, linked below, such that we only rebuild each project if a source file is newer than one of the target files.
https://maven.apache.org/plugins/maven-assembly-plugin/single-mojo.html#updateOnly
Given an invoker:run goal with updateOnly=false (default existing case)
When the goal is repeated
Then the invocation is repeated
Given an invoker:run goal with updateOnly=true (new case)
When the goal is repeated
Then the invocation is skipped