Ich habe meine Feder Boot-Anwendung unter Verwendung von sbt Montag verpackt und bei dem Versuch, das Glas laufen ichFederschuh mit sbt: Kann nicht starten EmbeddedWebApplicationContext aufgrund EmbeddedServletContainerFactory fehlt
Application startup failed
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is
org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
Das Projekt arbeitet in IntelliJ ganz gut erhalten. Mein build.sbt unter
lazy val news = (project in file("wherever")).
enablePlugins(DockerPlugin).
settings(commonSettings: _*).
settings(
name := "name",
mainClass in assembly := Some("mainEntry"),
test in assembly := {},
assemblyJarName := "jarName",
libraryDependencies ++= dependency1,
libraryDependencies ++= dependency2,
libraryDependencies += ScalaTest,
scalaSource in Compile := baseDirectory.value/"src/main/scala",
dockerfile in docker := {
val artifact: File = assembly.value
val artifactTargetPath = "/"
new Dockerfile {
from("openjdk:8-jre-alpine")
add(artifact, artifactTargetPath)
add(new File("./config/"),"/config")
cmd("java", "-jar", " -Denv=$env","jarName")
env("env","stage")
}
},
imageNames in docker := Seq(
ImageName("imageName")
)
)
ich einige Graben um getan haben und es sieht aus wie Spring Boot requires the jar to contain nested jars (anstelle eines Uber Glas wie mit sbt Baugruppe erstellt wird). Also, das gibt mir zwei Möglichkeiten. Packen Sie mein Jar als verschachteltes Jar mit sbt oder konfigurieren Sie Spring, um einen normalen Classloader zu verwenden und von einem Uber-Jar zu laden.
Ich habe in verschachtelte jar sbt plugins untersucht und ich kann scheinbar nichts finden, was beibehalten wird (oder sogar in maven central). This und this sind beide Jahre veraltet und nicht in Maven Central. Hat jemand Vorschläge dafür?
Ich habe auch in die Konfiguration von Spring-Boot untersucht, um Uber-Gläser zu verwenden, und die überwältigende Antwort ist nur "Verwenden Sie das Maven-Plugin", das hier nicht anwendbar ist.