Skip to content

Commit

Permalink
Implementing task to write maven descriptors (#66)
Browse files Browse the repository at this point in the history
Java jars usually come packaged with a META-INF/maven directory, known as the maven descriptor, which contains information about all dependencies packaged within. As we were using SBT we were not generating a maven descriptor, and only passing along the descriptors from some of our dependent jars. This was causing an issue that the descriptor reported some of our components packaged within as out-of-date.

This PR adds the creation of a maven descriptor director during the compile stage, which is packaged into the final jar via sbt assembly. We also avoid packaging the maven descriptors from our dependencies as these are unreliable.

I have verified that this works by looking at the dependency report and I can see that json-smart is no longer reported as an old version.
  • Loading branch information
davidsloan authored Oct 31, 2023
1 parent 4a0ea0e commit 201494c
Show file tree
Hide file tree
Showing 6 changed files with 160 additions and 8,148 deletions.
9 changes: 4 additions & 5 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import Settings.modulesSettings
import Settings.secretProviderDeps
import Settings.artifactVersion
import Settings.AssemblyConfigurator
import Settings.MavenDescriptorConfigurator
import Settings.testSinkDeps
import Settings.scala213
import Settings.Dependencies.`jsonSmart`
import sbt.Project.projectToLocalProject

name := "secret-provider"
Expand Down Expand Up @@ -38,12 +37,10 @@ lazy val `secret-provider` = (project in file("secret-provider"))
description := "Kafka Connect compatible connectors to move data between Kafka and popular data stores",
publish / skip := true,
libraryDependencies ++= secretProviderDeps,
dependencyOverrides ++= Seq(
`jsonSmart`,
)
),
)
.configureAssembly()
.configureMavenDescriptor()
.configs(IntegrationTest)
.settings(Defaults.itSettings: _*)

Expand All @@ -67,3 +64,5 @@ addCommandAlias(
"formatAll",
";scalafmt;scalafmtSbt;test:scalafmt;it:scalafmt;",
)

val generateMetaInfMaven = taskKey[Unit]("Generate META-INF/maven directory")
Loading

0 comments on commit 201494c

Please sign in to comment.