5
5
import java .util .Map .Entry ;
6
6
import java .util .function .Function ;
7
7
8
+ import org .hibernate .search .develocity .util .JavaVersions ;
9
+ import org .hibernate .search .develocity .util .MavenConfigs ;
10
+
8
11
import com .gradle .maven .extension .api .GradleEnterpriseApi ;
9
12
import com .gradle .maven .extension .api .cache .MojoMetadataProvider ;
10
13
import com .gradle .maven .extension .api .cache .NormalizationProvider ;
14
+ import com .gradle .maven .extension .api .scan .BuildScanApi ;
11
15
import org .apache .maven .execution .MavenSession ;
12
16
import org .apache .maven .project .MavenProject ;
13
17
@@ -23,7 +27,7 @@ public void configureBuildCache(GradleEnterpriseApi gradleEnterpriseApi, MavenSe
23
27
return ;
24
28
}
25
29
26
- Map <String , GoalMetadataProvider > goalMetadataProviders = Collections .unmodifiableMap (getGoalMetadataProviders ());
30
+ Map <String , GoalMetadataProvider > goalMetadataProviders = Collections .unmodifiableMap (getGoalMetadataProviders (gradleEnterpriseApi . getBuildScan () ));
27
31
28
32
Log .debug (getPluginName (), "Build cache is enabled. Configuring metadata providers." );
29
33
Log .debug (getPluginName (), "Configuring metadata for goals: " + goalMetadataProviders .keySet ());
@@ -43,7 +47,7 @@ protected boolean isBuildCacheEnabled(MavenProject project) {
43
47
return true ;
44
48
}
45
49
46
- protected abstract Map <String , GoalMetadataProvider > getGoalMetadataProviders ();
50
+ protected abstract Map <String , GoalMetadataProvider > getGoalMetadataProviders (BuildScanApi buildScanApi );
47
51
48
52
protected static void dependsOnGav (MojoMetadataProvider .Context .Inputs inputs , MojoMetadataProvider .Context context ) {
49
53
inputs .property ("_internal_gav" , context .getProject ().getGroupId () + ":" + context .getProject ().getArtifactId () + ":" + context .getProject ().getVersion ());
@@ -65,9 +69,12 @@ protected static void dependsOnConfigurableJavaExecutable(MojoMetadataProvider.C
65
69
Function <String , String > executableToVersion ) {
66
70
var configChild = context .getMojoExecution ().getConfiguration ().getChild ( configChildName );
67
71
String javaExecutable = configChild == null ? null : configChild .getValue ();
68
- String javaVersion = executableToVersion .apply ( javaExecutable );
69
- inputs .property ( "_internal_" + configChildName + "_java_version" , javaVersion );
70
- Log .info (
72
+ String javaVersion = executableToVersion .apply ( javaExecutable );
73
+ inputs .property ( "_internal_" + configChildName + "_java_version" ,
74
+ MavenConfigs .cacheExactJavaVersion ( context .getSession () )
75
+ ? javaVersion
76
+ : JavaVersions .toJdkMajor ( javaVersion , javaVersion ) );
77
+ Log .info (
71
78
context .getMojoExecution ().getPlugin ().getArtifactId (),
72
79
"Using %s at path '%s'; resolved version: %s"
73
80
.formatted ( configChildName , javaExecutable , javaVersion .replace ( '\n' , ' ' ).trim () )
0 commit comments