in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java [216:291]
private Model createReleaseModel(
MavenProject project,
ReleaseDescriptor releaseDescriptor,
ReleaseEnvironment releaseEnvironment,
ReleaseResult result)
throws ReleaseFailureException, ReleaseExecutionException {
MavenProject releaseProject = project.clone();
Model releaseModel = releaseProject.getModel();
// the release POM should reflect bits of these which were injected at build time...
// we don't need these polluting the POM.
releaseModel.setParent(null);
releaseModel.setProfiles(Collections.emptyList());
releaseModel.setDependencyManagement(null);
releaseProject.getBuild().setPluginManagement(null);
// update project version
String projectVersion = releaseModel.getVersion();
String releaseVersion = getNextVersion(releaseDescriptor, project.getGroupId(), project.getArtifactId());
releaseModel.setVersion(releaseVersion);
String originalFinalName = releaseModel.getBuild().getFinalName();
// update final name if implicit
if (!FINALNAME_EXPRESSION.equals(originalFinalName)) {
originalFinalName = findOriginalFinalName(project);
if (originalFinalName == null) {
// as defined in super-pom
originalFinalName = FINALNAME_EXPRESSION;
}
}
// make finalName always explicit
String finalName = ReleaseUtil.interpolate(originalFinalName, releaseModel);
// still required?
if (finalName.contains(Artifact.SNAPSHOT_VERSION)) {
throw new ReleaseFailureException(
"Cannot reliably adjust the finalName of project: " + releaseProject.getId());
}
releaseModel.getBuild().setFinalName(finalName);
// update scm
Scm scm = releaseModel.getScm();
if (scm != null) {
ScmRepository scmRepository = getScmRepository(releaseDescriptor, releaseEnvironment);
ScmTranslator scmTranslator = getScmTranslator(scmRepository);
if (scmTranslator != null) {
releaseModel.setScm(createReleaseScm(releaseModel.getScm(), scmTranslator, releaseDescriptor));
} else {
String message = "No SCM translator found - skipping rewrite";
result.appendDebug(message);
getLogger().debug(message);
}
}
// rewrite dependencies
releaseModel.setDependencies(createReleaseDependencies(releaseDescriptor, releaseProject));
// rewrite plugins
releaseModel.getBuild().setPlugins(createReleasePlugins(releaseDescriptor, releaseProject));
// rewrite reports
releaseModel.getReporting().setPlugins(createReleaseReportPlugins(releaseDescriptor, releaseProject));
// rewrite extensions
releaseModel.getBuild().setExtensions(createReleaseExtensions(releaseDescriptor, releaseProject));
unalignFromBaseDirectory(releaseModel, project.getBasedir());
return releaseModel;
}