@@ -15,77 +15,95 @@ initscript {
15
15
}
16
16
}
17
17
18
- rootProject {
19
- def settingsPluginVersion = providers. provider {
20
- def settingsFile = [" settings.gradle" , " settings.gradle.kts" ]
21
- .collect { layout. projectDirectory. file(it). asFile }
22
- .find { it. exists() }
23
- if (settingsFile != null ) {
24
- return findSettingsPluginVersion(settingsFile)
18
+ String detectedMicronautVersion = " unknown"
19
+ gradle. settingsEvaluated {
20
+ if (detectedMicronautVersion == " unknown" ) {
21
+ def micronautBuild = it. extensions. findByName(" micronautBuild" )
22
+ if (micronautBuild) {
23
+ def version = micronautBuild. micronautVersion
24
+ if (version) {
25
+ println (" Micronaut version: ${ version} " )
26
+ detectedMicronautVersion = version
27
+ }
25
28
}
26
- return " unknown"
27
29
}
28
- def groupProvider = providers. gradleProperty(" projectGroup" )
29
- .orElse(providers. gradleProperty(" projectGroupId" ))
30
- .orElse(providers. provider { allprojects. collect { it. group }. findAll(). first(). toString() })
31
- def collectingService = gradle. sharedServices. registerIfAbsent(" micronautDependenciesService" , MicronautDependenciesService ) {
32
- it. parameters. outputDir. set(file(providers. systemProperty(" reportDir" ). get()))
33
- it. parameters. groupId. set(groupProvider)
34
- it. parameters. githubSlug. set(providers. gradleProperty(" githubSlug" ))
35
- it. parameters. settingsPluginVersion. set(settingsPluginVersion)
36
- }
37
- def cachedStatus = null
38
- allprojects {
39
- pluginManager. withPlugin(' maven-publish' ) {
40
- tasks. register(" extractMicronautDependencies" , ExtractMicronautDependencies ) { t ->
41
- t. service. set(collectingService)
42
- t. usesService(collectingService)
43
- t. groupId = groupProvider
44
- def moduleName = project. name
45
- if (! moduleName. startsWith(' micronaut-' )) {
46
- moduleName = " micronaut-$moduleName "
47
- }
48
- t. status = providers. gradleProperty(" projectVersion" ). zip(groupProvider) { version , group ->
49
- if (cachedStatus != null ) {
50
- return cachedStatus
30
+ }
31
+
32
+
33
+ rootProject {
34
+ if (name != ' buildSrc' ) {
35
+ def settingsPluginVersion = providers. provider {
36
+ def settingsFile = [" settings.gradle" , " settings.gradle.kts" ]
37
+ .collect { layout. projectDirectory. file(it). asFile }
38
+ .find { it. exists() }
39
+ if (settingsFile != null ) {
40
+ return findSettingsPluginVersion(settingsFile)
41
+ }
42
+ return " unknown"
43
+ }
44
+ def groupProvider = providers. gradleProperty(" projectGroup" )
45
+ .orElse(providers. gradleProperty(" projectGroupId" ))
46
+ .orElse(providers. provider { allprojects. collect { it. group }. findAll(). first(). toString() })
47
+ def collectingService = gradle. sharedServices. registerIfAbsent(" micronautDependenciesService" , MicronautDependenciesService ) {
48
+ it. parameters. outputDir. set(file(providers. systemProperty(" reportDir" ). get()))
49
+ it. parameters. groupId. set(groupProvider)
50
+ it. parameters. githubSlug. set(providers. gradleProperty(" githubSlug" ))
51
+ it. parameters. settingsPluginVersion. set(settingsPluginVersion)
52
+ it. parameters. micronautVersion. set(detectedMicronautVersion)
53
+ }
54
+ def cachedStatus = null
55
+ allprojects {
56
+ pluginManager. withPlugin(' maven-publish' ) {
57
+ tasks. register(" extractMicronautDependencies" , ExtractMicronautDependencies ) { t ->
58
+ t. service. set(collectingService)
59
+ t. usesService(collectingService)
60
+ t. groupId = groupProvider
61
+ def moduleName = project. name
62
+ if (! moduleName. startsWith(' micronaut-' )) {
63
+ moduleName = " micronaut-$moduleName "
51
64
}
52
- if (version. endsWith(" -SNAPSHOT" )) {
53
- def versionWithoutSnapshot = version - ' -SNAPSHOT'
54
- String metadataUrl = " https://repo1.maven.org/maven2/${ group.replace('.', '/')} /$moduleName /maven-metadata.xml"
55
- println " Metadata URL is $metadataUrl "
56
- try {
57
- new URL (metadataUrl). withInputStream {
58
- def metadata = new groovy.xml.XmlSlurper (). parse(it)
59
- def versions = metadata. versioning. versions. version as List
60
- def matchingVersions = versions. findAll { it. text(). startsWith(versionWithoutSnapshot) }
61
- if (! matchingVersions. empty) {
62
- String last = matchingVersions. last()
63
- if (last. contains(' -' )) {
64
- cachedStatus = last. substring(last. lastIndexOf(' -' ) + 1 )
65
+ t. status = providers. gradleProperty(" projectVersion" ). zip(groupProvider) { version , group ->
66
+ if (cachedStatus != null ) {
67
+ return cachedStatus
68
+ }
69
+ if (version. endsWith(" -SNAPSHOT" )) {
70
+ def versionWithoutSnapshot = version - ' -SNAPSHOT'
71
+ String metadataUrl = " https://repo1.maven.org/maven2/${ group.replace('.', '/')} /$moduleName /maven-metadata.xml"
72
+ println " Metadata URL is $metadataUrl "
73
+ try {
74
+ new URL (metadataUrl). withInputStream {
75
+ def metadata = new groovy.xml.XmlSlurper (). parse(it)
76
+ def versions = metadata. versioning. versions. version as List
77
+ def matchingVersions = versions. findAll { it. text(). startsWith(versionWithoutSnapshot) }
78
+ if (! matchingVersions. empty) {
79
+ String last = matchingVersions. last()
80
+ if (last. contains(' -' )) {
81
+ cachedStatus = last. substring(last. lastIndexOf(' -' ) + 1 )
82
+ } else {
83
+ cachedStatus = " RELEASE"
84
+ }
65
85
} else {
66
- cachedStatus = " RELEASE "
86
+ cachedStatus = " SNAPSHOT "
67
87
}
68
- } else {
69
- cachedStatus = " SNAPSHOT"
70
88
}
89
+ } catch (IOException ex) {
90
+ cachedStatus = " SNAPSHOT"
71
91
}
72
- } catch ( IOException ex) {
73
- cachedStatus = " SNAPSHOT "
92
+ } else {
93
+ cachedStatus = " RELEASE "
74
94
}
75
- } else {
76
- cachedStatus = " RELEASE"
95
+ cachedStatus
77
96
}
78
- cachedStatus
79
- }
80
- [' apiElements' , ' runtimeElements' ]. each {
81
- def conf = configurations. findByName(it)
82
- if (conf != null ) {
83
- t. dependencies. addAll(providers. provider {
84
- conf. allDependencies. findAll { it instanceof ExternalModuleDependency }
85
- .collect { (ExternalModuleDependency ) it }
86
- .findAll { it. group. startsWith(' io.micronaut' ) }
87
- .collect { " ${ it.group} " . toString() }
88
- })
97
+ [' apiElements' , ' runtimeElements' ]. each {
98
+ def conf = configurations. findByName(it)
99
+ if (conf != null ) {
100
+ t. dependencies. addAll(providers. provider {
101
+ conf. allDependencies. findAll { it instanceof ExternalModuleDependency }
102
+ .collect { (ExternalModuleDependency ) it }
103
+ .findAll { it. group. startsWith(' io.micronaut' ) }
104
+ .collect { " ${ it.group} " . toString() }
105
+ })
106
+ }
89
107
}
90
108
}
91
109
}
@@ -121,6 +139,7 @@ abstract class MicronautDependenciesService implements BuildService<Params>, Aut
121
139
Property<String > getGroupId ()
122
140
Property<String > getGithubSlug ()
123
141
Property<String > getSettingsPluginVersion ()
142
+ Property<String > getMicronautVersion ()
124
143
}
125
144
126
145
abstract SetProperty<String > getDependencies ()
@@ -143,6 +162,7 @@ abstract class MicronautDependenciesService implements BuildService<Params>, Aut
143
162
props. put(" status" , status. get())
144
163
props. put(" gradleVersion" , GradleVersion . current(). version)
145
164
props. put(" settingsPluginVersion" , parameters. settingsPluginVersion. get())
165
+ props. put(" micronautVersion" , parameters. micronautVersion. get())
146
166
properties. getOrElse(Collections . emptyMap()). each { k , v ->
147
167
props. put(k, v)
148
168
}
0 commit comments