Используя плагин sbt-osgi , можно создать «толстые банки» с помощью атрибута OsgiKeys.embeddedJars
.
Например, следующий код (извлеченный из этого теста )) встраивает каждую зависимость с именем, начинающимся с jUnit
, в скомпилированный jar:
OsgiKeys.embeddedJars := (Keys.externalDependencyClasspath in Compile).value map (_.data) filter (
_.getName startsWith "junit")
В моем случае у меня есть зависимости, объявленные следующим образом:
libraryDependencies += "org.apache.logging.log4j" % "log4j-api" % "2.7" % Provided
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % akkaVersion
Я быкак и любая библиотека, которая будет встроена в толстый сосуд, за исключением тех, которые помечены Provided
.Таким образом, в этом случае com.typesafe.akka
должен быть включен в толстую банку, а org.apache.logging.log4j
не должен быть скомпилирован в банку.
Есть ли способ изменить метод фильтра выше, чтобы он отвечал моим требованиям?