Re: [DISCUSS] Fix for #12646 — moving pro ject-local-repo out of target/

"Martin Desruisseaux via dev" <[email protected]> Mon, 3 Aug 2026 18:31:36 +0200
Newsgroups gmane.comp.jakarta.turbine.maven.devel
Message-ID <[email protected]>
Hello Sergey and all

Omitting some emails fragment (the …snip…) for brevity:

Le 03/08/2026 à 18:07, Sergey Chernov a écrit :
> Maven historically executes commands like mvn clean install as a single
> sequence of goals (…snip…).
> Other build tools, like Gradle, do it a different way: for each "lifecycle"
> (…snip…) it executes the requestested goals/lifecycles for all modules,
> then goes to the next requested lifecycle.
> So, the mvn clean install in this case would look like this:
>
>     - run clean lifecycle for all modules [optionally in parallel, but still
>     only clean]
>     - when the clean lifecycle is over, run default lifecycle [validate..
>     install] for all modules
>
> IMO this behavior has advantages, but not sure it's compatible with e.g. -rf
>   (--resume-from), or all kinds of CLI-executed maven goals (mvn plugin:goal
> ).
> Is this a considerable option? I know this may be too late for such a
> drastic change, but this could be a possible solution as it eliminates the
> race condition with cleaning target/ of the root module.

Just a note that if using the Source Module Hierarchy introduced by the 
Java module work in Maven 4, we effectively get this model. This is 
because all Java modules declared in a Maven sub-project are compiled in 
a single Maven Compiler Plugin execution. Then all JAR files are created 
in a single Maven JAR Plugin execution, etc.

     Martin