Thinking out loud... would it make more sense to name those phases "before:each" and "after:each" - following the vocabulary that e.g. JUnit uses?

- Maarten

On 18/03/2025 12:24, Guillaume Nodet wrote:
The `all` phase is executed for each project.  But you can avoid the plugin
execution to be inherited by setting inherited="false" on the execution.
I've spotted a bug I think, as the definition of this phase does not
reference child projects, so they may not be executed at the correct time.
Could you raise a JIRA and provide a reproducer ?

Le lun. 17 mars 2025 à 21:13, Karl Heinz Marbaise <khmarba...@gmx.de.invalid>
a écrit :

Hi,

I'm trying to build a project with a number of subprojects..

I'm binding a plugin (just echoing) like this to new life cylce phases:

like this:


        <plugin>
          <groupId>com.soebes.maven.plugins</groupId>
          <artifactId>echo-maven-plugin</artifactId>
          <executions>
            <execution>
              <id>before-ready</id>
              <phase>before:ready</phase>
              <goals>
                <goal>echo</goal>
              </goals>
              <configuration>
                <echos>
                  <echo>Hallo 'before:ready' phase.</echo>
                </echos>
              </configuration>
            </execution>
            <execution>
              <id>before-all</id>
              <phase>before:all</phase>
              <goals>
                <goal>echo</goal>
              </goals>
              <configuration>
                <echos>
                  <echo>Hallo 'before:all' phase.</echo>
                </echos>
              </configuration>
            </execution>
            <execution>
              <id>all</id>
              <phase>all</phase>
              <goals>
                <goal>echo</goal>
              </goals>
              <configuration>
                <echos>
                  <echo>Hallo 'all' phase.</echo>
                </echos>
              </configuration>
            </execution>
            <execution>
              <id>after-all</id>
              <phase>after:all</phase>
              <goals>
                <goal>echo</goal>
              </goals>
              <configuration>
                <echos>
                  <echo>Hallo 'after:all' phase.</echo>
                </echos>
              </configuration>
            </execution>


What I can observe while calling maven like this:

mvn -B -b concurrent verify

What I can observe that for each module the phase:


[INFO] --- echo:0.5.0:echo (before-all) @ appasm ---
[INFO] Hallo 'before:all' phase.
[INFO]
[INFO] --- echo:0.5.0:echo (before-all) @ assembly ---
[INFO] Hallo 'before:all' phase.
[INFO]
[INFO] --- echo:0.5.0:echo (before-all) @ shade ---
[INFO] Hallo 'before:all' phase.
[INFO]
[INFO] --- echo:0.5.0:echo (before-all) @ app ---
[INFO] Hallo 'before:all' phase.
[INFO]
[INFO] --- echo:0.5.0:echo (before-all) @ service ---
[INFO] Hallo 'before:all' phase.
[INFO]
[INFO] --- echo:0.5.0:echo (before-all) @ webgui ---
[INFO] Hallo 'before:all' phase.
[INFO]
[INFO] --- echo:0.5.0:echo (before-all) @ service-client ---
[INFO] Hallo 'before:all' phase.
....
is being called..also
"after:all" the same way..

Based on my assumption (coming from the name) would be called exactly
once "before:all" ... "after:all" also......
Because that would not solve the problem to bind a plugin like JaCoCo
(for coverage for an aggregate) or JavaDoc for an aggregate for a whole
project in it...

Or do we have a solution for that which I'm not yet aware of?



Kind regards
Karl Heinz Marbaise

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to