Skip to content

Commit 4f5a7ae

Browse files
committed
Inject hard coded central definition when using "old" settings
1 parent 4210366 commit 4f5a7ae

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
import org.apache.maven.building.FileSource;
3434
import org.apache.maven.building.Source;
35+
import org.apache.maven.settings.Repository;
36+
import org.apache.maven.settings.RepositoryPolicy;
3537
import org.apache.maven.settings.Settings;
3638
import org.apache.maven.settings.TrackableBase;
3739
import org.apache.maven.settings.io.SettingsParseException;
@@ -97,6 +99,25 @@ public SettingsBuildingResult build(SettingsBuildingRequest request) throws Sett
9799

98100
settingsMerger.merge(userSettings, globalSettings, TrackableBase.GLOBAL_LEVEL);
99101

102+
// If no repository is defined in the user/global settings,
103+
// it means that we have "old" settings (as those are new in 4.0)
104+
// so add central to the computed settings for backward compatibility.
105+
if (userSettings.getRepositories().isEmpty() && userSettings.getPluginRepositories().isEmpty()) {
106+
Repository central = new Repository();
107+
central.setId("central");
108+
central.setName("Central Repository");
109+
central.setUrl("https://repo.maven.apache.org/maven2");
110+
RepositoryPolicy disabledPolicy = new RepositoryPolicy();
111+
disabledPolicy.setEnabled(false);
112+
central.setSnapshots(disabledPolicy);
113+
userSettings.getRepositories().add(central);
114+
central = central.clone();
115+
RepositoryPolicy updateNeverPolicy = new RepositoryPolicy();
116+
disabledPolicy.setUpdatePolicy("never");
117+
central.setReleases(updateNeverPolicy);
118+
userSettings.getPluginRepositories().add(central);
119+
}
120+
100121
problems.setSource("");
101122

102123
userSettings = interpolate(userSettings, request, problems);

0 commit comments

Comments
 (0)