@@ -110,10 +110,10 @@ public List<ResolvedDependency> getDirectResolved() {
110110 * The list of all dependencies resolved for this configuration, including transitive dependencies.
111111 */
112112 public List <ResolvedDependency > getResolved () {
113- List < ResolvedDependency > resolved = new ArrayList <>( getDirectResolved ());
114- Map < GroupArtifact , ResolvedDependency > alreadyResolved = new HashMap <> ();
115- resolveTransitiveDependencies ( resolved , alreadyResolved );
116- return new ArrayList <>( alreadyResolved . values () );
113+ if ( resolutionContext . isResolveRequired ()) {
114+ resolutionContext . resolve ();
115+ }
116+ return resolutionContext . getResolved ( );
117117 }
118118
119119 /**
@@ -162,12 +162,11 @@ public GradleDependencyConfiguration markForReResolution(List<MavenRepository> r
162162 return this ;
163163 }
164164 private class LazyResolutionContext {
165- @ Getter
166- private boolean resolveRequired ;
167- @ Nullable
168- private List <MavenRepository > repositories ;
169- @ Nullable
170- private ExecutionContext ctx ;
165+ private @ Getter boolean resolveRequired ;
166+ private @ Nullable List <MavenRepository > repositories ;
167+ private @ Nullable ExecutionContext ctx ;
168+ private @ Nullable List <ResolvedDependency > resolved ;
169+
171170 public void markForReResolution (List <MavenRepository > repositories , ExecutionContext ctx ) {
172171 this .repositories = repositories ;
173172 this .resolveRequired = true ;
@@ -233,11 +232,22 @@ public void resolve() {
233232 }
234233 }
235234 unsafeSetDirectResolved (newResolved );
235+ resolved = null ;
236236 }
237237 resolveRequired = false ;
238238 repositories = null ;
239239 ctx = null ;
240240 }
241+
242+ public List <ResolvedDependency > getResolved () {
243+ if (resolved == null ) {
244+ List <ResolvedDependency > newResolved = new ArrayList <>(getDirectResolved ());
245+ Map <GroupArtifact , ResolvedDependency > alreadyResolved = new HashMap <>();
246+ resolveTransitiveDependencies (newResolved , alreadyResolved );
247+ resolved = new ArrayList <>(alreadyResolved .values ());
248+ }
249+ return resolved ;
250+ }
241251 }
242252
243253 private static ResolvedDependency newer (ResolvedDependency a , ResolvedDependency b ) {
0 commit comments