【问题标题】:Multiple Projects Using Play and IntelliJ使用 Play 和 IntelliJ 的多个项目
【发布时间】:2013-09-26 15:41:07
【问题描述】:

我有一个 Play 2.2 项目并且正在使用 IntelliJ 12。我通过从命令行执行 play idea 生成了项目文件。 (play2 插件太差了,我每次更改依赖项时都必须这样做,考虑到我支付了“终极”费用以获得 Play 支持,这非常了不起)。无论如何,现在的问题是随着项目的发展,我希望拥有更多的模块化。我想有几个项目可以编译成 jars。 (我这样做的部分原因是 scala 编译时间使 TDD 难以忍受。)

在 Eclipse 中,我会简单地创建一个工作区,然后将这些项目全部挂在 pom 项目中。如果我在这里做同样的事情,我将如何获取 play 项目的 intellij 项目文件?只会在play项目的目录下生成。

【问题讨论】:

    标签: playframework intellij-idea playframework-2.2


    【解决方案1】:

    我有一个 Play 2.2 项目,我在工作中拆分了这就是我所做的:

    文件夹结构:

    项目:

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

    这是主要的 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 项目)

    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)
    
    }
    

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

    然后我将编辑主项目/plugins.sbt 文件并添加 sbt 插件 此处说明:https://github.com/mpeltonen/sbt-idea(我用的是快照版)

    然后使用 gen-idea 命令生成 intellij 项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      • 2013-02-12
      相关资源
      最近更新 更多