|
32 | 32 |
|
33 | 33 | import org.apache.maven.building.FileSource; |
34 | 34 | import org.apache.maven.building.Source; |
| 35 | +import org.apache.maven.settings.Repository; |
| 36 | +import org.apache.maven.settings.RepositoryPolicy; |
35 | 37 | import org.apache.maven.settings.Settings; |
36 | 38 | import org.apache.maven.settings.TrackableBase; |
37 | 39 | import org.apache.maven.settings.io.SettingsParseException; |
@@ -97,6 +99,25 @@ public SettingsBuildingResult build(SettingsBuildingRequest request) throws Sett |
97 | 99 |
|
98 | 100 | settingsMerger.merge(userSettings, globalSettings, TrackableBase.GLOBAL_LEVEL); |
99 | 101 |
|
| 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 | + |
100 | 121 | problems.setSource(""); |
101 | 122 |
|
102 | 123 | userSettings = interpolate(userSettings, request, problems); |
|
0 commit comments