@@ -61,28 +61,34 @@ lazy val cobrix = (project in file("."))
6161 .aggregate(cobolParser, cobolConverters, sparkCobol)
6262
6363lazy val cobolParser = (project in file(" cobol-parser" ))
64+ .enablePlugins(ShadingPlugin )
65+ .enablePlugins(AutomateHeaderPlugin )
6466 .settings(
6567 name := " cobol-parser" ,
6668 libraryDependencies ++= CobolParserDependencies :+ getScalaDependency(scalaVersion.value),
69+ shadedDependencies ++= CobolParserShadedDependencies ,
70+ shadingRules ++= Seq (
71+ ShadingRule .moveUnder(" org.antlr.v4.runtime" , " za.co.absa.cobrix.cobol.parser.shaded" )
72+ ),
73+ validNamespaces ++= Set (" za" ),
6774 releasePublishArtifactsAction := PgpKeys .publishSigned.value,
68- assemblySettings
69- )
70- .settings(
75+ assemblySettings,
7176 jacocoReportSettings := commonJacocoReportSettings.withTitle(" cobrix:cobol-parser Jacoco Report" ),
7277 jacocoExcludes := commonJacocoExcludes
73- ).enablePlugins( AutomateHeaderPlugin )
78+ )
7479
7580lazy val cobolConverters = (project in file(" cobol-converters" ))
81+ .dependsOn(cobolParser)
7682 .disablePlugins(sbtassembly.AssemblyPlugin )
83+ .enablePlugins(AutomateHeaderPlugin )
7784 .settings(
7885 name := " cobol-converters" ,
7986 libraryDependencies ++= CobolConvertersDependencies :+ getScalaDependency(scalaVersion.value),
8087 // No need to publish this artifact since it has test only at the moment
8188 publishArtifact := false ,
8289 publish := {},
8390 publishLocal := {}
84- ).dependsOn(cobolParser)
85- .enablePlugins(AutomateHeaderPlugin )
91+ )
8692
8793lazy val sparkCobol = (project in file(" spark-cobol" ))
8894 .settings(
@@ -144,7 +150,11 @@ lazy val assemblySettings = Seq(
144150 assembly / assemblyOption:= (assembly / assemblyOption).value.copy(includeScala = false ),
145151 assembly / assemblyShadeRules:= Seq (
146152 // Spark may rely on a different version of ANTLR runtime. Renaming the package helps avoid the binary incompatibility
147- ShadeRule .rename(" org.antlr.**" -> " za.co.absa.cobrix.shaded.org.antlr.@1" ).inAll,
153+ ShadeRule .rename(" org.antlr.**" -> " za.co.absa.cobrix.cobol.parser.shaded.org.antlr.@1" ).inAll,
154+ // Shading all 3rd party libraries used by 'spark-cobol' in order to avoid binary conflicts.
155+ ShadeRule .rename(" macrocompat.**" -> " za.co.absa.cobrix.spark.cobol.shaded.macrocompat.@1" ).inAll,
156+ ShadeRule .rename(" scodec.**" -> " za.co.absa.cobrix.spark.cobol.shaded.scodec.@1" ).inAll,
157+ ShadeRule .rename(" shapeless.**" -> " za.co.absa.cobrix.spark.cobol.shaded.shapeless.@1" ).inAll,
148158 // The SLF4j API and implementation are provided by Spark
149159 ShadeRule .zap(" org.slf4j.**" ).inAll
150160 ),
0 commit comments