Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何使用IntelliJ Idea创建SBT项目?_Scala_Intellij Idea_Lift_Sbt - Fatal编程技术网

Scala 如何使用IntelliJ Idea创建SBT项目?

Scala 如何使用IntelliJ Idea创建SBT项目?,scala,intellij-idea,lift,sbt,Scala,Intellij Idea,Lift,Sbt,我刚刚开始Scala/LiftWeb/Sbt开发,我想在IntelliJ Idea中导入一个Sbt项目。 实际上,我以两种不同的方式导入了我的项目: 1) 和Maven在一起。我创建了一个Maven项目,最重要的是我创建了一个Sbt项目,然后将其导入IntelliJ。然后我就可以轻松地启动、停止jetty服务器,并做其他事情。 但那不是我想要的。我想做同样的事情,只是不受拘束。 这让我想到 2) 随着日食。因此,我创建了一个新的Sbt项目(使用我编写的一个小脚本,将Sbt项目配置为一个WebPr

我刚刚开始Scala/LiftWeb/Sbt开发,我想在IntelliJ Idea中导入一个Sbt项目。 实际上,我以两种不同的方式导入了我的项目:

1) 和Maven在一起。我创建了一个Maven项目,最重要的是我创建了一个Sbt项目,然后将其导入IntelliJ。然后我就可以轻松地启动、停止jetty服务器,并做其他事情。 但那不是我想要的。我想做同样的事情,只是不受拘束。 这让我想到

2) 随着日食。因此,我创建了一个新的Sbt项目(使用我编写的一个小脚本,将Sbt项目配置为一个WebProject)。然后我使用sbt eclipsify插件为Eclipse“转换”项目,然后将其导入IntelliJ(现有源代码->Eclipse)。 但问题从这里开始:我无法让IntelliJ Sbt插件工作


有人能帮我吗?

我刚刚经历了这么多痛苦。我花了几天时间试图建立一个可接受的环境,并得出结论,ENSIME、SBT和JRebel将在一段时间内成为我的开发环境。是的,它将回到Emacs,但ENSIME将其转化为重构、调试支持、导航等方面的一点或一个想法。它远不如Eclipse(Java)好,但除非scala插件工作得更好,否则它是我们最好的插件

在Scala开发环境达到标准(Eclipse或IntelliJ)之前,我不想麻烦。他们只是太轻巧了

参见电梯现场的讨论

在这个线程中,有一个指向IntelliJ的HOWTO的链接,但是尽管它有点工作,但是有很多问题使得它没有那么有用


目前,我是手工完成的。这很简单

  • 使用SBT创建项目
  • 创建具有相同根路径的新IDEA项目
  • 创建具有相同根路径的模块
  • 将src/main/scala设置为模块上的src路径
  • 将src/test/scala设置为模块上的测试路径
  • 将scala-library.jar添加为库
  • 在模块库中添加lib(如果存在)作为jar目录
  • 将lib_managed/compile(如果存在)添加为模块库中的jar目录
  • 将lib_managed/test(如果存在)添加为模块库中的jar目录
  • 这是从记忆中得来的。如果它是自动化的话会更好,但它现在并没有什么大不了的

    需要注意的是:上述方法不适用于新的学校sbt,即0.10和更新版本,因为它不会将依赖项复制到默认管理的库中。你可以加上

    retrieveManaged := true
    

    将依赖项复制到lib_managed中。

    创建项目有三种基本方法-IntelliJ的现代版本可以直接导入sbt项目,否则您可以使用sbt插件生成IntelliJ项目,或者使用IntelliJ Scala插件创建sbt项目。使用这两种解决方案,基本功能都是开箱即用的,一些复杂的构建可能会有问题,所以请尝试其他工具,看看它是否在那里工作

    IntelliJ IntelliJ IDEA这些天变得更好了。当前版本(14.0.2)支持使用Scala插件开箱即用的sbt项目。只需安装插件,就可以轻松打开Scala/sbt项目

    有了这个插件,只要指向一个sbt项目,IDEA就会为您提供一个向导来打开这种项目

    IntelliJ Scala插件 IntelliJ插件可以在这里找到 或者可以使用设置->插件对话框从IDE中直接安装。之后,只需执行文件->新项目->Scala->基于SBT的操作。IntelliJ将生成基本build.sbt,下载必要的依赖项并打开项目

    SBT插件 基于Sbt文件生成idea项目的Sbt插件可在以下位置找到:

    SBT 12.0+&13.0+

    只需将
    addSbtPlugin(“com.github.mpeltonen”%”sbt idea“%”1.5.2“
    添加到
    build.sbt
    ;不需要额外的解析器

    旧版本: SBT 0.11+

    创建以下行并将其添加到
    ~/.sbt/plugins/build.sbt
    PROJECT\u DIR/PROJECT/plugins.sbt

    在sbt中使用
    gen idea
    ,创建idea项目文件

    默认情况下,如果找到sbt和库依赖项的分类器(即源和javadocs)并将引用添加到IDEA项目文件中,则会加载这些分类器。如果您不想下载/引用它们,请使用命令
    genidea no classifiers no sbt classifiers


    SBT 0.10.1 (根据插件作者的说法,0.10.0不起作用!)

    创建以下行并将其添加到~/.sbt/plugins/build.sbt:

    resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
    
    libraryDependencies += "com.github.mpeltonen" %% "sbt-idea" % "0.10.0"
    
    使用
    genidea
    sbt任务创建idea项目文件

    默认情况下,如果找到sbt和库依赖项的分类器(即源和javadocs)并将引用添加到IDEA项目文件中,则会加载这些分类器。如果您不想下载/引用它们,请使用命令
    genidea no classifiers no sbt classifiers


    SBT 0.7

    要使用它,只需从您的sbt外壳运行此程序,它将使用插件作为外部程序:

     > *sbtIdeaRepo at http://mpeltonen.github.com/maven/
     > *idea is com.github.mpeltonen sbt-idea-processor 0.4.0
     ...
     > update
     ...
     > idea
     ...
    
    您还可以根据需要在项目定义中添加trait:

    import sbt._
    class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
      lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
       // ...
    }
    

    对于sbt 0.7

    对于sbt 0.10

    克隆并构建伊斯梅尔的sbt理念:

    git clone https://github.com/ijuma/sbt-idea.git
    cd sbt-idea
    git checkout sbt-0.10
    ./sbt package
    
    如果您还没有sbt插件库目录,请创建一个sbt插件库目录

    mkdir -p  ~/.sbt/plugins/lib
    
    将第一步中构建的jar复制到这里

    cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib
    
    重新启动或重新加载sbt,然后您可以运行
    gen idea
    (或者
    gen idea with classifiers
    ,如果您还需要intelliJ中的sources和javadoc)

    来源:

    在IntelliJ IDEA 13.x本身中

    您现在可以在IDEA中打开基于SBT的项目。它将创建必要的项目和模块,并随时更新您的依赖项
    cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib
    
    resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"
    
    addSbtPlugin(dependency="com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")
    
    sbt idea