2626import org .gradle .api .artifacts .VersionCatalogsExtension ;
2727import org .gradle .api .artifacts .VersionConstraint ;
2828import org .gradle .api .artifacts .dsl .DependencyHandler ;
29+ import org .gradle .api .attributes .Bundling ;
30+ import org .gradle .api .attributes .Category ;
31+ import org .gradle .api .attributes .LibraryElements ;
2932import org .gradle .api .attributes .Usage ;
33+ import org .gradle .api .attributes .java .TargetJvmEnvironment ;
3034import org .gradle .api .file .ConfigurableFileCollection ;
3135import org .gradle .api .file .Directory ;
3236import org .gradle .api .file .ProjectLayout ;
@@ -365,10 +369,15 @@ public Provider<String> moduleName(Provider<String> ga) {
365369 *
366370 * @param versionsProvidingProjects projects which runtime classpaths are the runtime classpaths of the applications/services being built.
367371 */
368- public void versionsFromConsistentResolution (String ... versionsProvidingProjects ) {
372+ public Configuration versionsFromConsistentResolution (String ... versionsProvidingProjects ) {
373+ ObjectFactory objects = getObjects ();
369374 Configuration mainRuntimeClasspath = getConfigurations ().create ("mainRuntimeClasspath" , c -> {
370375 c .setCanBeConsumed (false );
371- c .getAttributes ().attribute (Usage .USAGE_ATTRIBUTE , getObjects ().named (Usage .class , Usage .JAVA_RUNTIME ));
376+ c .getAttributes ().attribute (Usage .USAGE_ATTRIBUTE , objects .named (Usage .class , Usage .JAVA_RUNTIME ));
377+ c .getAttributes ().attribute (Category .CATEGORY_ATTRIBUTE , objects .named (Category .class , Category .LIBRARY ));
378+ c .getAttributes ().attribute (LibraryElements .LIBRARY_ELEMENTS_ATTRIBUTE , objects .named (LibraryElements .class , LibraryElements .JAR ));
379+ c .getAttributes ().attribute (TargetJvmEnvironment .TARGET_JVM_ENVIRONMENT_ATTRIBUTE , objects .named (TargetJvmEnvironment .class , TargetJvmEnvironment .STANDARD_JVM ));
380+ c .getAttributes ().attribute (Bundling .BUNDLING_ATTRIBUTE , objects .named (Bundling .class , Bundling .EXTERNAL ));
372381 });
373382 getConfigurations ().configureEach (c -> {
374383 if (c .isCanBeResolved () && !c .isCanBeConsumed () && c != mainRuntimeClasspath ) {
@@ -379,9 +388,10 @@ public void versionsFromConsistentResolution(String... versionsProvidingProjects
379388 for (String versionsProvidingProject : versionsProvidingProjects ) {
380389 getDependencies ().add (mainRuntimeClasspath .getName (), createDependency (versionsProvidingProject ));
381390 }
391+ return mainRuntimeClasspath ;
382392 }
383393
384- public void versionsFromPlatformAndConsistentResolution (String platformProject , String ... versionsProvidingProjects ) {
394+ public Configuration versionsFromPlatformAndConsistentResolution (String platformProject , String ... versionsProvidingProjects ) {
385395 boolean platformInJavaProject = Arrays .asList (versionsProvidingProjects ).contains (platformProject );
386396 getSourceSets ().configureEach (sourceSet -> getConfigurations ().getByName (sourceSet .getImplementationConfigurationName ()).withDependencies (d -> {
387397 Dependency platformDependency = getDependencies ().platform (createDependency (platformProject ));
@@ -397,7 +407,7 @@ public void versionsFromPlatformAndConsistentResolution(String platformProject,
397407 d .add (platformDependency );
398408 }));
399409
400- versionsFromConsistentResolution (versionsProvidingProjects );
410+ return versionsFromConsistentResolution (versionsProvidingProjects );
401411 }
402412
403413 private Dependency createDependency (String project ) {
0 commit comments