如何将war文件部署到Jetty?

如何将war文件部署到Jetty?,jetty,sbt,war,Jetty,Sbt,War,我正在使用一个开源项目,它产生了一场战争。我想将其部署到Jetty服务器。我想用一个主类创建一个sbt项目,在这个主类中它启动一个jetty服务器,然后部署到war之上 我面临的问题是如何让jetty部署战争。即使我把战争作为一种依赖,我仍然不会在我的项目中有战争 我试过的一件事是添加 retrieveManaged := true 在build.sbt中,它将所有依赖项复制到managed_lib文件夹中,但这看起来很难看 我无法将战争项目移入SBT 有什么好办法吗?您需要采取的步骤基本上如

我正在使用一个开源项目,它产生了一场战争。我想将其部署到Jetty服务器。我想用一个主类创建一个sbt项目,在这个主类中它启动一个jetty服务器,然后部署到war之上

我面临的问题是如何让jetty部署战争。即使我把战争作为一种依赖,我仍然不会在我的项目中有战争

我试过的一件事是添加

retrieveManaged := true
build.sbt
中,它将所有依赖项复制到
managed_lib
文件夹中,但这看起来很难看

我无法将战争项目移入SBT


有什么好办法吗?

您需要采取的步骤基本上如下:

  • 创建允许您访问war文件的sbt任务

  • 将war文件的位置告知代码

  • 告诉Jetty文件的位置


  • 请注意,该代码未经测试,但它应该为您提供一些可以继续使用的内容

    一,

    二,

    project/buildinfo.sbt
    add
    addSbtPlugin(“com.eed3si9n”%“sbt buildinfo”%“0.3.2”)


    在使用sbt实现自动化之前,您是否知道如何使用Jetty和war本身(没有sbt)实现自动化?
    val warFile = taskKey[File]("A reference to the war file")
    
    warFile := {
      val filter = artifactFilter(name = "name of warfile")
      val updateReport = update.value
      updateReport.filter(filter).toSeq.headOption.map {
        case (config, module, artifact, file) => file
      }.getOrElse(sys.error("Could not find a warfile"))
    }
    
    buildInfoPackage := "your.package",
    buildInfoObject := "BuildInfo",
    buildInfoKeys := Seq[BuildInfoKey](
      warFile
    ),
    sourceGenerators in Compile <+= buildInfo
    
    val warFile = new File(BuildInfo.warFile)
    // pass to Jetty