Skip to content

Commit 6396f13

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

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

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

Lines changed: 22 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,26 @@ 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()
106+
&& userSettings.getPluginRepositories().isEmpty()) {
107+
Repository central = new Repository();
108+
central.setId("central");
109+
central.setName("Central Repository");
110+
central.setUrl("https://repo.maven.apache.org/maven2");
111+
RepositoryPolicy disabledPolicy = new RepositoryPolicy();
112+
disabledPolicy.setEnabled(false);
113+
central.setSnapshots(disabledPolicy);
114+
userSettings.getRepositories().add(central);
115+
central = central.clone();
116+
RepositoryPolicy updateNeverPolicy = new RepositoryPolicy();
117+
disabledPolicy.setUpdatePolicy("never");
118+
central.setReleases(updateNeverPolicy);
119+
userSettings.getPluginRepositories().add(central);
120+
}
121+
100122
problems.setSource("");
101123

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

0 commit comments

Comments
 (0)