1414import eu .maveniverse .maven .toolbox .shared .internal .jdom .JDomPomTransformer ;
1515import java .util .ArrayList ;
1616import java .util .function .Consumer ;
17+ import org .apache .maven .plugin .MojoExecutionException ;
1718import org .apache .maven .plugins .annotations .Mojo ;
1819import org .apache .maven .plugins .annotations .Parameter ;
20+ import org .apache .maven .project .MavenProject ;
1921
2022/**
2123 * Sets version of current project and all children.
2224 */
23- @ Mojo (name = "set-version" , threadSafe = true )
25+ @ Mojo (name = "set-version" , aggregator = true , threadSafe = true )
2426public class SetVersionMojo extends MPMojoSupport {
2527 /**
2628 * The new version.
@@ -37,7 +39,6 @@ public class SetVersionMojo extends MPMojoSupport {
3739 @ Override
3840 protected Result <Boolean > doExecute () throws Exception {
3941 ToolboxCommando toolboxCommando = getToolboxCommando ();
40- Result <Boolean > result ;
4142
4243 ArrayList <Consumer <JDomPomTransformer .TransformationContext >> transformers = new ArrayList <>();
4344 transformers .add (c -> JDomPomEditor .setVersion (c .getDocument ().getRootElement (), version ));
@@ -50,9 +51,15 @@ protected Result<Boolean> doExecute() throws Exception {
5051 }
5152 }
5253
53- try (ToolboxCommando .EditSession editSession =
54- toolboxCommando .createEditSession (mavenProject .getFile ().toPath ())) {
55- result = toolboxCommando .doEdit (editSession , transformers );
54+ Result <Boolean > result = Result .success (true );
55+ for (MavenProject project : mavenSession .getProjects ()) {
56+ try (ToolboxCommando .EditSession editSession =
57+ toolboxCommando .createEditSession (project .getFile ().toPath ())) {
58+ result = toolboxCommando .doEdit (editSession , transformers );
59+ }
60+ if (!result .isSuccess ()) {
61+ throw new MojoExecutionException ("Failed to update version of " + project .getArtifactId ());
62+ }
5663 }
5764 return result ;
5865 }
0 commit comments