in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java [421:470]
private void processSnapshot(
Set<Artifact> snapshotSet, ReleaseDescriptor releaseDescriptor, String autoResolveSnapshots)
throws PrompterException, VersionParseException {
Iterator<Artifact> iterator = snapshotSet.iterator();
while (iterator.hasNext()) {
Artifact currentArtifact = iterator.next();
String versionlessKey = ArtifactUtils.versionlessKey(currentArtifact);
VersionInfo versionInfo = new DefaultVersionInfo(currentArtifact.getBaseVersion());
releaseDescriptor.addDependencyOriginalVersion(versionlessKey, versionInfo.toString());
prompter.get()
.showMessage("Dependency '" + versionlessKey + "' is a snapshot (" + currentArtifact.getVersion()
+ ")\n");
String message = "Which release version should it be set to?";
String result;
if (null != autoResolveSnapshots) {
result = versionInfo.getReleaseVersionString();
prompter.get().showMessage(message + " " + result);
} else {
result = prompter.get().prompt(message, versionInfo.getReleaseVersionString());
}
releaseDescriptor.addDependencyReleaseVersion(versionlessKey, result);
iterator.remove();
// by default, keep the same version for the dependency after release, unless it was previously newer
// the user may opt to type in something different
VersionInfo nextVersionInfo = new DefaultVersionInfo(result);
String nextVersion;
if (nextVersionInfo.compareTo(versionInfo) > 0) {
nextVersion = nextVersionInfo.toString();
} else {
nextVersion = versionInfo.toString();
}
message = "What version should the dependency be reset to for development?";
if (null != autoResolveSnapshots) {
result = nextVersion;
prompter.get().showMessage(message + " " + result);
} else {
result = prompter.get().prompt(message, nextVersion);
}
releaseDescriptor.addDependencyDevelopmentVersion(versionlessKey, result);
}
}