首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改Scalatra端口

更改Scalatra端口
EN

Stack Overflow用户
提问于 2013-07-25 18:00:52
回答 3查看 2.9K关注 0票数 10

这听起来很基本,但实际上花了我一整天的时间:我想更改正在开发中的scalatra运行端口。我从hello world g8模板开始,并一直从那里开始构建。

这是我到目前为止尝试过的:

更改build.scala中的端口,ala文档:http://www.scalatra.org/guides/deployment/configuration.html这不能编译,因为端口未定义。

更改build.scala中的端口这两个示例: https: gist.github.com dozed 58af6cfbfe721a562a48 https://github.com/JamesEarlDouglas/xsbt-web-plugin/blob/master/src/sbt-test/web/servlet/project/Build.scala同样的问题:端口未定义

重新定义入口点,ala http: www.scalatra.org指南部署standalone.html仍然在端口8080上运行

更改引导程序中的初始化参数,ala http: www.scalatra.org指南部署configuration.html仍然在端口8080上运行

感谢您的帮助。由于某些原因,我不能发布超过2个链接,所以请在urls后面用正斜杠替换空格。

这是我的build.scala,如果有帮助的话。

代码语言:javascript
复制
import sbt._
import Keys._
import org.scalatra.sbt._
import org.scalatra.sbt.PluginKeys._
import com.mojolly.scalate.ScalatePlugin._
import ScalateKeys._
import com.earldouglas.xsbtwebplugin._
import WebPlugin._

object YesManBuild extends Build {
  val Organization = "com.prezi"
  val Name = "Yes Man"
  val Version = "0.1.0-SNAPSHOT"
  val ScalaVersion = "2.10.2"
  val ScalatraVersion = "2.2.1"

  //def Conf = config("container")

  lazy val project = Project (
    "yes-man",
    file("."),
    settings = Defaults.defaultSettings ++ ScalatraPlugin.scalatraWithJRebel ++ scalateSettings ++ Seq(
      //port in Conf := 8081,
      mainClass := Some("com.prezi.eureka.JettyLauncher.main"),
      organization := Organization,
      name := Name,
      version := Version,
      scalaVersion := ScalaVersion,
      resolvers += Classpaths.typesafeReleases,
      libraryDependencies ++= Seq(
        "org.slf4j" % "slf4j-log4j12" % "1.7.5",
        "com.netflix.eureka" % "eureka-client" % "1.1.97",
        "com.netflix.ribbon" % "ribbon-httpclient" % "0.1.10",
        "com.netflix.ribbon" % "ribbon-eureka" % "0.1.11",
        "org.scalatra" %% "scalatra" % ScalatraVersion,
        "org.scalatra" %% "scalatra-scalate" % ScalatraVersion,
        "org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test",
        "ch.qos.logback" % "logback-classic" % "1.0.6" % "runtime",
        "org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "container",
        "org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts (Artifact("javax.servlet", "jar", "jar")),
        "org.eclipse.jetty.aggregate" % "jetty-all" % "9.0.4.v20130625"
      ),
      scalateTemplateConfig in Compile <<= (sourceDirectory in Compile){ base =>
        Seq(
          TemplateConfig(
            base / "webapp" / "WEB-INF" / "templates",
            Seq.empty,  /* default imports should be added here */
            Seq(
              Binding("context", "_root_.org.scalatra.scalate.ScalatraRenderContext", importMembers = true, isImplicit = true)
            ),  /* add extra bindings here */
            Some("templates")
          )
        )
      }
    )
  )
}

谢谢你们,

~Erik

EN

回答 3

Stack Overflow用户

发布于 2013-07-27 21:58:18

更新23.01.2016:scalatra-sbt使用xsbt-web-plugin 2.0.4,并更改了一些设置。你可以找到xsbt-web- here文档(相关注释:可以在https://github.com/scalatra/scalatra-in-action中找到xsbt-web-plugin,sbt-web,docker和独立版本的集成,参见09-*章目录)。

对于Scalatra应用程序,这意味着:

基于sourceDirectory in webappPrepare

  • only的构建定义:使用正确的导入来导入插件和设置密钥

.sbt构建定义:

代码语言:javascript
复制
organization := "org.foo"
name := "My build"
version := "0.1.0-SNAPSHOT"
scalaVersion := "2.11.6"

val ScalatraVersion = "2.4.0"

libraryDependencies ++= Seq(
  "org.scalatra" %% "scalatra" % ScalatraVersion,
  "org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test",
  "com.typesafe" % "config" % "1.2.1",
  "ch.qos.logback" % "logback-classic" % "1.1.3" % "runtime",
  "javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided"
)

enablePlugins(JettyPlugin)

containerPort in Jetty := 8090

基于.scala的SBT构建定义没有那么神奇,我们需要导入插件及其设置:

代码语言:javascript
复制
import sbt._
import Keys._

import org.scalatra.sbt._

import com.earldouglas.xwp.JettyPlugin
import com.earldouglas.xwp.JettyPlugin.autoImport._
import com.earldouglas.xwp.ContainerPlugin.autoImport._

使用enablePlugins(JettyPlugin)和自定义端口的实际构建定义:

代码语言:javascript
复制
object MyBuild extends Build {
  val Organization = "org.foo"
  val Name = "My Build"
  val Version = "0.1.0-SNAPSHOT"
  val ScalaVersion = "2.11.6"
  val ScalatraVersion = "2.4.0"

  val mySettings =
    ScalatraPlugin.scalatraSettings ++ Seq(
      organization := Organization,
      name := Name,
      version := Version,
      scalaVersion := ScalaVersion,
      libraryDependencies ++= Seq(
        "org.scalatra" %% "scalatra" % ScalatraVersion,
        "org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test",
        "com.typesafe" % "config" % "1.2.1",
        "ch.qos.logback" % "logback-classic" % "1.1.3" % "runtime",
        "javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided"
      ),
      containerPort in Jetty := 8090
    )

  lazy val project = Project("chapter09", file("."))
    .enablePlugins(JettyPlugin)
    .settings(mySettings: _*)

}

确保您使用的是导入:

代码语言:javascript
复制
import com.earldouglas.xsbtwebplugin.PluginKeys._
import com.earldouglas.xsbtwebplugin.WebPlugin._

通过这些导入,您可以使用正确的密钥和配置:

代码语言:javascript
复制
port in container.Configuration := 9000

这将放在settings块中:

代码语言:javascript
复制
...
lazy val project = Project (
  "example",
  file("."),
  settings = Defaults.defaultSettings ++ ScalatraPlugin.scalatraWithJRebel ++ scalateSettings ++ Seq(
    port in container.Configuration := 9000,
    organization := Organization,
...

scalatra-sbt构建在xsbt-web-plugin上,其设置记录在这里:https://github.com/JamesEarlDouglas/xsbt-web-plugin/wiki/Settings

票数 15
EN

Stack Overflow用户

发布于 2013-08-07 06:52:19

我这样做了,并且工作了:

代码语言:javascript
复制
....
val port = SettingKey[Int]("port")
val Conf = config("container")

lazy val project = Project (
    port in Conf := 8081,
    ....
)
票数 1
EN

Stack Overflow用户

发布于 2014-07-04 03:06:12

我在项目的根目录下创建了一个空的build.sbt文件,并放入:

port in container.Configuration := 8090

在文件中才能正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17854835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档