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.
*