首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在eclipse中将2.1应用程序作为scala项目播放(而不是java项目)

在eclipse中将2.1应用程序作为scala项目播放(而不是java项目)
EN

Stack Overflow用户
提问于 2014-02-18 03:02:37
回答 2查看 313关注 0票数 0

如何配置playframework-2.1应用程序build.scala文件以生成使用scalanature而不是javanature的eclipse项目?

我找到了这段代码(https://github.com/playframework/playframework/blob/2.1.x/framework/src/sbt-plugin/src/main/scala/play/Project.scala)

代码语言:javascript
复制
val mainLang = if (dependencies.contains(javaCore)) JAVA else SCALA

这意味着如果我在依赖中有javaCore,我就会得到一个JAVA项目。我试图删除对javaCore的依赖,但我遇到了编译错误。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2014-02-18 03:32:04

我设法配置了一个播放框架项目,

使用java和scala的

  • 使用playframework-2.1.x

在eclipse

  • 中正确使用scala natures

  • compiles的eclipse项目

该脚本如下所示

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

object ApplicationBuild extends Build {

    val appName         = "darzaar"
    val appVersion      = "1.0-SNAPSHOT"
    //play.Project.playScalaSettings - is available only in playframework-2.2.x
    val appDependencies = Seq(
      // added instead of javaCore
      "play"  %%  "play-java"     % "2.1.5",
      "be.objectify"  %%  "deadbolt-java"     % "2.1-RC2",
      "be.objectify"  %%  "deadbolt-scala"     % "2.1-RC2",
      // Comment this for local development of the Play Authentication core
      "com.feth"      %%  "play-authenticate" % "0.3.4-SNAPSHOT",
      "postgresql"    %   "postgresql"        % "9.1-901-1.jdbc4",
      //javaCore, - commented to keep SCALA nature in eclipse
      //javaJdbc,
      jdbc,
      javaEbean
    )

    import com.typesafe.sbteclipse.core.EclipsePlugin._ 

    val main = play.Project(appName, appVersion, appDependencies)
        //.settings(play.Project.playScalaSettings:_*)
        .settings(
      resolvers += Resolver.url("Objectify Play Repository (release)", url("http://schaloner.github.com/releases/"))(Resolver.ivyStylePatterns),
      resolvers += Resolver.url("Objectify Play Repository (snapshot)", url("http://schaloner.github.com/snapshots/"))(Resolver.ivyStylePatterns),

      resolvers += Resolver.url("play-easymail (release)", url("http://joscha.github.com/play-easymail/repo/releases/"))(Resolver.ivyStylePatterns),
      resolvers += Resolver.url("play-easymail (snapshot)", url("http://joscha.github.com/play-easymail/repo/snapshots/"))(Resolver.ivyStylePatterns),

      resolvers += Resolver.url("play-authenticate (release)", url("http://joscha.github.com/play-authenticate/repo/releases/"))(Resolver.ivyStylePatterns),
      resolvers += Resolver.url("play-authenticate (snapshot)", url("http://joscha.github.com/play-authenticate/repo/snapshots/"))(Resolver.ivyStylePatterns)

      // These keys wheren't used by sbt-eclipse when used in playframework
      //,EclipseKeys.projectFlavor := EclipseProjectFlavor.Scala
      //,PlayEclipse.mainLang := SCALA
    )
//  Uncomment this for local development of the Play Authenticate core:
//    .dependsOn(playAuthenticate).aggregate(playAuthenticate)

}

我还需要向一些模板添加以下导入,因为defaultScalaTemplatesImporthttps://github.com/playframework/playframework/blob/b4006e9dbecaca6f8257a209f7d0fdc6e0345b48/framework/src/sbt-plugin/src/main/scala/PlayKeys.scala中的defaultJavaTemplatesImport不同

代码语言:javascript
复制
@import play.mvc.Http.Context.Implicit._
@import scala.collection.JavaConversions._
@import scala.collection.JavaConverters._
票数 0
EN

Stack Overflow用户

发布于 2014-02-20 10:58:18

在您的plugins.sbt中添加以下Sbt eclipse插件

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.3.0")

在play控制台中,键入"eclipse“并按回车键。

看看SBTEclipse plugin吧。我看到你已经在使用最新版本的Play了。我建议你试试typesafe中的‘激活器’。

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

https://stackoverflow.com/questions/21837199

复制
相关文章

相似问题

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