Uploaded image for project: 'Maven Invoker Plugin'
  1. Maven Invoker Plugin
  2. MINVOKER-268

invoker:run skips invocation when the sources are unmodified

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.2.2
    • 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

      Attachments

        Activity

          People

            olamy Olivier Lamy
            roxspring Robert James Oxspring
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: