diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/api/PomHelper.java b/versions-common/src/main/java/org/codehaus/mojo/versions/api/PomHelper.java index 9583bf28c7..325f929095 100644 --- a/versions-common/src/main/java/org/codehaus/mojo/versions/api/PomHelper.java +++ b/versions-common/src/main/java/org/codehaus/mojo/versions/api/PomHelper.java @@ -106,7 +106,9 @@ public static Model getRawModel(MavenProject project) throws IOException { public static Model getRawModel(File moduleProjectFile) throws IOException { try (Reader reader = new BufferedReader(new InputStreamReader(Files.newInputStream(moduleProjectFile.toPath())))) { - return getRawModel(reader); + Model result = getRawModel(reader); + result.setPomFile(moduleProjectFile); + return result; } } diff --git a/versions-maven-plugin/src/it/it-set-issue-848/invoker.properties b/versions-maven-plugin/src/it/it-set-issue-848/invoker.properties new file mode 100644 index 0000000000..f21410e6a3 --- /dev/null +++ b/versions-maven-plugin/src/it/it-set-issue-848/invoker.properties @@ -0,0 +1,2 @@ +invoker.goals = ${project.groupId}:${project.artifactId}:${project.version}:set +invoker.mavenOpts = -DnewVersion=TEST diff --git a/versions-maven-plugin/src/it/it-set-issue-848/moduleA/moduleA.xml b/versions-maven-plugin/src/it/it-set-issue-848/moduleA/moduleA.xml new file mode 100644 index 0000000000..dd5d623021 --- /dev/null +++ b/versions-maven-plugin/src/it/it-set-issue-848/moduleA/moduleA.xml @@ -0,0 +1,15 @@ + + 4.0.0 + + + default-group + default-artifact + 1.0-SNAPSHOT + + + moduleA + 1.0.0-SNAPSHOT + pom + + diff --git a/versions-maven-plugin/src/it/it-set-issue-848/moduleB/pom.xml b/versions-maven-plugin/src/it/it-set-issue-848/moduleB/pom.xml new file mode 100644 index 0000000000..fd2328b9d3 --- /dev/null +++ b/versions-maven-plugin/src/it/it-set-issue-848/moduleB/pom.xml @@ -0,0 +1,15 @@ + + 4.0.0 + + + default-group + default-artifact + 1.0-SNAPSHOT + + + moduleB + 1.0.0-SNAPSHOT + pom + + diff --git a/versions-maven-plugin/src/it/it-set-issue-848/pom.xml b/versions-maven-plugin/src/it/it-set-issue-848/pom.xml new file mode 100644 index 0000000000..1a21193a2b --- /dev/null +++ b/versions-maven-plugin/src/it/it-set-issue-848/pom.xml @@ -0,0 +1,15 @@ + + 4.0.0 + + default-group + default-artifact + 1.0-SNAPSHOT + pom + + + moduleA/moduleA.xml + moduleB/pom.xml + + + diff --git a/versions-maven-plugin/src/it/it-set-issue-848/verify.groovy b/versions-maven-plugin/src/it/it-set-issue-848/verify.groovy new file mode 100644 index 0000000000..9eca6d5107 --- /dev/null +++ b/versions-maven-plugin/src/it/it-set-issue-848/verify.groovy @@ -0,0 +1,3 @@ +assert new File( basedir, "pom.xml" ).text.contains( 'TEST' ) +assert new File( basedir, "moduleA/moduleA.xml" ).text.contains( 'TEST' ) +assert new File( basedir, "moduleB/pom.xml" ).text.contains( 'TEST' ) diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetMojo.java index 44035838b9..140679313e 100644 --- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetMojo.java +++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetMojo.java @@ -283,8 +283,7 @@ public void execute() throws MojoExecutionException, MojoFailureException { if (removeSnapshot && !nextSnapshot) { String version = getVersion(); if (version.endsWith(SNAPSHOT)) { - String release = version.substring(0, version.indexOf(SNAPSHOT)); - newVersion = release; + newVersion = version.substring(0, version.indexOf(SNAPSHOT)); getLog().info("SNAPSHOT found. BEFORE " + version + " --> AFTER: " + newVersion); } } @@ -371,8 +370,8 @@ public void execute() throws MojoExecutionException, MojoFailureException { reactor.values().parallelStream() .map(m -> PomHelper.getModelEntry(reactor, PomHelper.getGroupId(m), PomHelper.getArtifactId(m))) .filter(Objects::nonNull) - .map(Map.Entry::getKey) - .map(f -> getModuleProjectFile(project, f)) + .map(Map.Entry::getValue) + .map(Model::getPomFile) .forEach(files::add); } @@ -435,7 +434,7 @@ private void applyChange( Map.Entry current = PomHelper.getModelEntry(reactor, groupId, artifactId); if (current != null) { current.getValue().setVersion(newVersion); - files.add(getModuleProjectFile(project, current.getKey())); + files.add(current.getValue().getPomFile()); } for (Map.Entry sourceEntry : reactor.entrySet()) { @@ -463,7 +462,7 @@ private void applyChange( continue; } - files.add(getModuleProjectFile(project, sourcePath)); + files.add(sourceModel.getPomFile()); getLog().debug("Looking for modules which use " + ArtifactUtils.versionlessKey(sourceGroupId, sourceArtifactId) + " as their parent"); @@ -514,20 +513,6 @@ private void applyChange( } } - private static File getModuleProjectFile(MavenProject project, String relativePath) { - final File moduleDir = new File(project.getBasedir(), relativePath); - final File projectBaseDir = project.getBasedir(); - - if (projectBaseDir.equals(moduleDir)) { - return project.getFile(); - } else if (moduleDir.isDirectory()) { - return new File(moduleDir, "pom.xml"); - } - // i don't think this should ever happen... but just in case - // the module references the file-name - return moduleDir; - } - /** * Updates the pom file. *