Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
Playframework 使用Play和IntelliJ的多个项目_Playframework_Intellij Idea_Playframework 2.2 - Fatal编程技术网

Playframework 使用Play和IntelliJ的多个项目

Playframework 使用Play和IntelliJ的多个项目,playframework,intellij-idea,playframework-2.2,Playframework,Intellij Idea,Playframework 2.2,我有一个Play 2.2项目,正在使用IntelliJ 12。我通过从命令行执行playidea生成了项目文件。(play2插件太差了,我每次更改依赖项时都要这么做,考虑到我为“终极版”支付了游戏支持费用,这是非常了不起的)。不管怎样,现在的问题是,随着项目的发展,我希望有更多的模块化。我希望有几个项目可以编译成JAR。(我这样做的部分原因是scala编译时间使TDD变得非常痛苦。) 在eclipse中,我只需要创建一个工作区,然后让这些项目都挂在pom项目上。如果我在这里做同样的事情,我将如何

我有一个Play 2.2项目,正在使用IntelliJ 12。我通过从命令行执行
playidea
生成了项目文件。(play2插件太差了,我每次更改依赖项时都要这么做,考虑到我为“终极版”支付了游戏支持费用,这是非常了不起的)。不管怎样,现在的问题是,随着项目的发展,我希望有更多的模块化。我希望有几个项目可以编译成JAR。(我这样做的部分原因是scala编译时间使TDD变得非常痛苦。)


在eclipse中,我只需要创建一个工作区,然后让这些项目都挂在pom项目上。如果我在这里做同样的事情,我将如何获得play项目的intellij项目文件?它将只在play项目的目录中生成它们。

我有一个play 2.2项目,我在工作中拆分了该项目。以下是我所做的:

文件夹结构:

项目:

  project1
    --project/Build.scala
  project2
    --project/Build.scala
  project3
    --project/Build.scala

project/Build.scala
下面是main Build.scala的外观:

import sbt._
import Keys._

object ApplicationBuild extends Build {

  val appName = "test"
  val appVersion = "test-0.1"
  val ScalaVersion = "2.10.2"

  val appDependencies = Seq(    
  )

  lazy val project1 = RootProject(file("./project1/"))

  lazy val project2 = RootProject(file("./project2/"))

  lazy val project3 = RootProject(file("./project3/"))

  lazy val mainProject = Project (
    id = "test",
    base = file("."),
    settings = Project.defaultSettings).settings(    
      scalaVersion := ScalaVersion,
      name := appName,
      version := appVersion,
      resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/maven-releases/",
      resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/",
      resolvers += "Typesafe snapshots" at "http://repo.typesafe.com/typesafe/snapshots/",
      resolvers += "Sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots",
      libraryDependencies ++= appDependencies

    ).aggregate(project1).aggregate(project2).aggregate(project3)

}
这将是将构建所有子项目的平均sbt构建文件

下面是project2的Build.scala文件的外观(在本例中,这是Play项目)

基本上,project2依赖于project1的代码

然后我将编辑主项目/plugins.sbt文件并添加sbt插件 此处的说明:(我使用快照版本)

然后使用genidea命令生成intellij项目

import sbt._
import Keys._
import play.Project._

object ApplicationBuild extends Build {

  val appName = "project2"
  val appVersion = "1.0"



  val appDependencies = Seq(
    jdbc       
  )


  lazy val project1 = RootProject(file("../project1"))

  lazy val main = play.Project(appName, appVersion, appDependencies).settings(
    scalaVersion := "2.10.2",
    resolvers += Resolver.url("typesafe", url("http://repo.typesafe.com/typesafe/releases/")),
    resolvers += "Sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
  ).dependsOn(project1)

}