in enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/RequireNoRepositories.java [127:203]
public void execute() throws EnforcerRuleException {
// Maven 4 Model contains repositories defined in settings.xml
// As workaround we exclude repositories defined in settings.xml
// https://issues.apache.org/jira/browse/MNG-7228
if (banRepositories) {
Collection<String> reposIdsFromSettings = getRepoIdsFromSettings(Profile::getRepositories);
if (!reposIdsFromSettings.isEmpty()) {
getLog().debug(() -> "Allow repositories from settings: " + reposIdsFromSettings);
}
allowedRepositories = Optional.ofNullable(allowedRepositories).orElseGet(ArrayList::new);
allowedRepositories.addAll(reposIdsFromSettings);
}
if (banPluginRepositories) {
Collection<String> reposIdsFromSettings = getRepoIdsFromSettings(Profile::getPluginRepositories);
if (!reposIdsFromSettings.isEmpty()) {
getLog().debug(() -> "Allow plugin repositories from settings: " + reposIdsFromSettings);
}
allowedPluginRepositories =
Optional.ofNullable(allowedPluginRepositories).orElseGet(ArrayList::new);
allowedPluginRepositories.addAll(reposIdsFromSettings);
}
List<MavenProject> sortedProjects = session.getProjectDependencyGraph().getSortedProjects();
List<Model> models = new ArrayList<>();
for (MavenProject mavenProject : sortedProjects) {
getLog().debug("Scanning project: " + mavenProject.getGroupId() + ":" + mavenProject.getArtifactId()
+ VERSION + mavenProject.getVersion());
models.add(mavenProject.getOriginalModel());
}
List<Model> badModels = new ArrayList<>();
StringBuilder newMsg = new StringBuilder();
newMsg.append("Some poms have repositories defined:" + System.lineSeparator());
for (Model model : models) {
if (banRepositories) {
List<Repository> repos = model.getRepositories();
if (repos != null && !repos.isEmpty()) {
List<String> bannedRepos =
findBannedRepositories(repos, allowedRepositories, allowSnapshotRepositories);
if (!bannedRepos.isEmpty()) {
badModels.add(model);
newMsg.append(model.getGroupId() + ":" + model.getArtifactId() + VERSION + model.getVersion()
+ " has repositories " + bannedRepos);
}
}
}
if (banPluginRepositories) {
List<Repository> repos = model.getPluginRepositories();
if (repos != null && !repos.isEmpty()) {
List<String> bannedRepos =
findBannedRepositories(repos, allowedPluginRepositories, allowSnapshotPluginRepositories);
if (!bannedRepos.isEmpty()) {
badModels.add(model);
newMsg.append(model.getGroupId() + ":" + model.getArtifactId() + VERSION + model.getVersion()
+ " has plugin repositories " + bannedRepos);
}
}
}
}
// if anything was found, log it then append the
// optional message.
if (!badModels.isEmpty()) {
if (StringUtils.isNotEmpty(getMessage())) {
newMsg.append(getMessage());
}
throw new EnforcerRuleException(newMsg.toString());
}
}