首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无SBT的Scalatra

无SBT的Scalatra
EN

Stack Overflow用户
提问于 2013-11-26 00:32:51
回答 1查看 549关注 0票数 2

我试图从Scalatra开始,但我遇到了SBT的主要问题。坦率地说,我讨厌它。这是相当于Maven的Scala。它试图接管项目的每一个方面,以获得一些假定的好处。另外,它和IDE没有很好的结合。那么,在没有SBT的情况下,有没有办法与Scalatra一起工作呢?我真的很喜欢Scalatra提供的东西,但是如果我不能摆脱SBT,我可能不得不用一些更简单的东西来解决问题,比如用Jetty构建我需要的特性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-26 14:24:40

我应该说得更清楚一点。但昨晚几个小时后,我找到了答案。首先,您需要这样的主对象(或类似对象):

代码语言:javascript
复制
object Sandbox {
    def main(args: Array[String]) {
        val server = new Server(3000)
        val context = new WebAppContext()
        context.setServer(server)
        context.setContextPath("/")
        context.setWar("webapp")
        server.setHandler(context)

        try {
            server.start()
            server.join()
        } catch {
            case e: Exception =>
                e.printStackTrace()
                System.exit(-1)
        }
    }
}

然后您将需要一个servlet:

代码语言:javascript
复制
class Test extends ScalatraServlet with ScalateSupport {
    get("/") {
        <html>
            <body>
                Hello World
            </body>
        </html>
    }
}

在默认包中还需要一个ScalatraBootstrap类(必须命名为ScalatraBootstrap.scala )

代码语言:javascript
复制
class ScalatraBootstrap extends LifeCycle {
    override def init(context: ServletContext) {
        context.mount(new Test, "/test/*")
    }
}

就快完成了。您需要一个单一的XML文件。创建一个webapp/WEB-INF文件夹并将这个web.xml文件放入其中。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <listener>
        <listener-class>org.scalatra.servlet.ScalatraListener</listener-class>
    </listener>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/img/*</url-pattern>
        <url-pattern>/css/*</url-pattern>
        <url-pattern>/js/*</url-pattern>
        <url-pattern>/assets/*</url-pattern>
    </servlet-mapping>
</web-app>

最后,您需要JAR文件。有一个相当长的列表,但有一个相当简单的方法来获得它们。我讨厌Maven,但我喜欢依赖性管理。因此,在某个地方创建一个测试文件夹并在 repo中下载文件。然后转到pom.xml所在的文件夹并运行mvn dependency:copy-dependencies。从dependencies文件夹中拿出罐子,你就可以走了。没有Maven,没有SBT,没有魔法。像往常一样在IDE中运行和调试。:)

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

https://stackoverflow.com/questions/20206356

复制
相关文章

相似问题

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