@@ -49,7 +49,8 @@ dependencies {
4949 pcollections(libs.pcollections) { isTransitive = false }
5050 bigMath(libs.bigMath) { isTransitive = false }
5151 functionalJava(libs.functionalJava) { isTransitive = false }
52- cpSuite(libs.cpSuite) { isTransitive = false }
52+ // we need to explicitly state the jar type for this dependency
53+ cpSuite(libs.cpSuite.get().toString() + " @jar" ) { isTransitive = false }
5354}
5455
5556tasks.wrapper {
@@ -92,16 +93,20 @@ val artifactsDir by extra(project.layout.buildDirectory.dir("artifacts").get())
9293val reportsDir by extra(project.layout.buildDirectory.dir(" reports" ).get())
9394val scriptsDir by extra(project.layout.buildDirectory.dir(" scripts" ).get())
9495
95- val bundledDependencyResolveTasks = listOf (
96- pcollections.registerTaskToResolveBundledDependency( " org.iets3.core.expr.base.collections.stubs" ) ,
97- bigMath.registerTaskToResolveBundledDependency( " org.iets3.core.expr.math.interpreter" ) ,
98- functionalJava.registerTaskToResolveBundledDependency( " org.iets3.core.expr.genjava.functionalJava" ) ,
99- cpSuite.registerTaskToResolveBundledDependency( " org.iets3.opensource.build.gentests.rt" , " takari-cpsuite.jar " )
96+ val bundledDepsToLibSolution = mapOf (
97+ pcollections to " org.iets3.core.expr.base.collections.stubs" ,
98+ bigMath to " org.iets3.core.expr.math.interpreter" ,
99+ functionalJava to " org.iets3.core.expr.genjava.functionalJava" ,
100+ cpSuite to " org.iets3.opensource.build.gentests.rt"
100101)
101102
103+ val bundledDependencies = bundledDepsToLibSolution.keys.toList()
104+ val bundledDependencyResolveTasks = bundledDepsToLibSolution.map { (conf, libSolutionName) ->
105+ conf.registerTaskToResolveBundledDependency(libSolutionName)
106+ }
107+
102108fun Configuration.registerTaskToResolveBundledDependency (
103- libSolutionName : String ,
104- jarNameOverride : String? = null
109+ libSolutionName : String
105110): TaskProvider <Sync > {
106111 val configName = this @registerTaskToResolveBundledDependency.name
107112 return tasks.register<Sync >(" resolve_${configName} _bundled" ) {
@@ -114,8 +119,7 @@ fun Configuration.registerTaskToResolveBundledDependency(
114119 configurations.getByName(configName).resolvedConfiguration.resolvedArtifacts
115120 .find { resolvedArtifact: ResolvedArtifact -> resolvedArtifact.file.name == filename })
116121
117- return @rename jarNameOverride
118- ? : if (resolvedArtifact.classifier != null ) {
122+ return @rename if (resolvedArtifact.classifier != null ) {
119123 " ${resolvedArtifact.name} -${resolvedArtifact.classifier} .${resolvedArtifact.extension} "
120124 } else {
121125 " ${resolvedArtifact.name} .${resolvedArtifact.extension} "
@@ -323,13 +327,13 @@ val packageDistroWithDependencies by tasks.registering(Zip::class) {
323327 include(" org.iets3.opensource.distro/**" )
324328}
325329
326- fun MavenPom.addDependency (configuration : Configuration ) {
330+ fun MavenPom.addDependency (configuration : Configuration , scope : String? = null ) {
327331 configuration.resolvedConfiguration.firstLevelModuleDependencies.forEach {
328- addDependency(it.moduleGroup, it.moduleName, it.moduleVersion, it.moduleArtifacts.first().type)
332+ addDependency(it.moduleGroup, it.moduleName, it.moduleVersion, it.moduleArtifacts.first().type, scope )
329333 }
330334}
331335
332- fun MavenPom.addDependency (moduleGroup : String , moduleName : String , moduleVersion : String , type : String? = null) {
336+ fun MavenPom.addDependency (moduleGroup : String , moduleName : String , moduleVersion : String , type : String? = null, scope : String? = null ) {
333337 withXml {
334338 val root = asNode()
335339 val dependencies =
@@ -339,6 +343,7 @@ fun MavenPom.addDependency(moduleGroup: String, moduleName: String, moduleVersio
339343 appendNode(" artifactId" , moduleName)
340344 appendNode(" version" , moduleVersion)
341345 type?.let { appendNode(" type" , it) }
346+ scope?.let { appendNode(" scope" , it) }
342347 }
343348 }
344349}
@@ -364,6 +369,8 @@ fun MavenPom.includeAdditionalInfo() {
364369 }
365370}
366371
372+ fun MavenPom.addBundledDependencies () = bundledDependencies.forEach { addDependency(it, " provided" ) }
373+
367374publishing {
368375 repositories {
369376 maven {
@@ -413,6 +420,7 @@ publishing {
413420 moduleVersion = project.version.toString(),
414421 type = " zip"
415422 )
423+ pom.addBundledDependencies()
416424 pom.includeAdditionalInfo()
417425 }
418426 val runtimesDir = file(artifactsDir).resolve(" org.iets3.opensource/org.iets3.core.os/languages/iets3.core.os" )
@@ -515,5 +523,5 @@ tasks.cyclonedxBom {
515523 // Don't include license texts in generated SBOMs
516524 includeLicenseText.set(false )
517525 // Included bundled runtime dependencies
518- includeConfigs.set(listOf (pcollections, bigMath, functionalJava, cpSuite) .map { it.name })
526+ includeConfigs.set(bundledDependencies .map { it.name })
519527}
0 commit comments