3131import io .quarkus .bom .decomposer .ReleaseId ;
3232import io .quarkus .bom .decomposer .ReleaseOrigin ;
3333import io .quarkus .bom .decomposer .ReleaseVersion ;
34+ import io .quarkus .bootstrap .resolver .maven .BootstrapMavenContext ;
35+ import io .quarkus .bootstrap .resolver .maven .BootstrapMavenContextConfig ;
3436import io .quarkus .bootstrap .resolver .maven .BootstrapMavenException ;
3537import io .quarkus .bootstrap .resolver .maven .MavenArtifactResolver ;
3638import io .quarkus .devtools .messagewriter .MessageWriter ;
@@ -91,6 +93,16 @@ private void setupConfig(ProjectDependencyConfig.Mutable dominoConfig) {
9193 }
9294
9395 public DependencyResult resolve (Path projectDir , Path dominoConfigFile ) {
96+ ProjectDependencyResolver resolver = configureResolver (projectDir , dominoConfigFile );
97+
98+ PrintStream origOut = System .out ;
99+ System .setOut (new PrintStream (new LogOutputStream ()));
100+ ReleaseCollection releaseCollection = resolver .getReleaseCollection ();
101+ System .setOut (origOut );
102+ return parseReleaseCollection (releaseCollection );
103+ }
104+
105+ private ProjectDependencyResolver configureResolver (Path projectDir , Path dominoConfigFile ) {
94106 ProjectDependencyConfig .Mutable dominoConfig ;
95107 if (dominoConfigFile == null ) {
96108 dominoConfig = ProjectDependencyConfig .builder ();
@@ -102,21 +114,19 @@ public DependencyResult resolve(Path projectDir, Path dominoConfigFile) {
102114 }
103115 }
104116 ProjectDependencyResolver .Builder resolverBuilder = ProjectDependencyResolver .builder ();
117+ if (config .getMavenSettings () != null ) {
118+ resolverBuilder .setUserMavenSettings (config .getMavenSettings ());
119+ }
105120 if (projectDir != null ) {
106121 dominoConfig .setProjectDir (projectDir );
107122 resolverBuilder .setArtifactResolver (getArtifactResolver (projectDir ));
108123 }
109124 setupConfig (dominoConfig );
110125 ProjectDependencyConfig conf = dominoConfig .build ();
111126 logDominoConfig (conf );
112- ProjectDependencyResolver resolver = resolverBuilder .setMessageWriter (new Slf4jMessageWriter ())
127+ return resolverBuilder .setMessageWriter (new Slf4jMessageWriter ())
113128 .setDependencyConfig (conf )
114129 .build ();
115- PrintStream origOut = System .out ;
116- System .setOut (new PrintStream (new LogOutputStream ()));
117- ReleaseCollection releaseCollection = resolver .getReleaseCollection ();
118- System .setOut (origOut );
119- return parseReleaseCollection (releaseCollection );
120130 }
121131
122132 private void logDominoConfig (ProjectDependencyConfig conf ) {
@@ -132,11 +142,14 @@ private void logDominoConfig(ProjectDependencyConfig conf) {
132142
133143 protected MavenArtifactResolver getArtifactResolver (Path projectDir ) {
134144 try {
135- return MavenArtifactResolver .builder ()
145+ MavenArtifactResolver . Builder builder = MavenArtifactResolver .builder ()
136146 .setCurrentProject (projectDir .toAbsolutePath ().toString ())
137147 .setEffectiveModelBuilder (true )
138- .setPreferPomsFromWorkspace (true )
139- .build ();
148+ .setPreferPomsFromWorkspace (true );
149+ if (config .getMavenSettings () != null ) {
150+ builder .setUserSettings (config .getMavenSettings ().toFile ());
151+ }
152+ return builder .build ();
140153 } catch (BootstrapMavenException e ) {
141154 throw new RuntimeException ("Failed to initialize Maven artifact resolver" , e );
142155 }
0 commit comments