in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java [126:185]
private void checkProject(MavenProject project, ReleaseDescriptor releaseDescriptor)
throws ReleaseFailureException, ReleaseExecutionException {
Map<String, Artifact> artifactMap = ArtifactUtils.artifactMapByVersionlessId(project.getArtifacts());
Set<Artifact> usedSnapshotDependencies = new HashSet<>();
if (project.getParentArtifact() != null) {
if (checkArtifact(project.getParentArtifact(), artifactMap, releaseDescriptor)) {
usedSnapshotDependencies.add(project.getParentArtifact());
}
}
Set<Artifact> dependencyArtifacts = project.getDependencyArtifacts();
usedSnapshotDependencies.addAll(checkDependencies(releaseDescriptor, artifactMap, dependencyArtifacts));
// @todo check dependencyManagement
Set<Artifact> pluginArtifacts = project.getPluginArtifacts();
Set<Artifact> usedSnapshotPlugins = checkPlugins(releaseDescriptor, artifactMap, pluginArtifacts);
// @todo check pluginManagement
Set<Artifact> reportArtifacts = project.getReportArtifacts();
Set<Artifact> usedSnapshotReports = checkReports(releaseDescriptor, artifactMap, reportArtifacts);
Set<Artifact> extensionArtifacts = project.getExtensionArtifacts();
Set<Artifact> usedSnapshotExtensions = checkExtensions(releaseDescriptor, artifactMap, extensionArtifacts);
// @todo check profiles
if (!usedSnapshotDependencies.isEmpty()
|| !usedSnapshotReports.isEmpty()
|| !usedSnapshotExtensions.isEmpty()
|| !usedSnapshotPlugins.isEmpty()) {
if (releaseDescriptor.isInteractive() || null != releaseDescriptor.getAutoResolveSnapshots()) {
resolveSnapshots(
usedSnapshotDependencies,
usedSnapshotReports,
usedSnapshotExtensions,
usedSnapshotPlugins,
releaseDescriptor);
}
if (!usedSnapshotDependencies.isEmpty()
|| !usedSnapshotReports.isEmpty()
|| !usedSnapshotExtensions.isEmpty()
|| !usedSnapshotPlugins.isEmpty()) {
StringBuilder message = new StringBuilder();
printSnapshotDependencies(usedSnapshotDependencies, message);
printSnapshotDependencies(usedSnapshotReports, message);
printSnapshotDependencies(usedSnapshotExtensions, message);
printSnapshotDependencies(usedSnapshotPlugins, message);
message.append("in project '" + project.getName() + "' (" + project.getId() + ")");
throw new ReleaseFailureException(
"Can't release project due to non released dependencies :\n" + message);
}
}
}