簡體   English   中英

使用Play和IntelliJ的多個項目

[英]Multiple Projects Using Play and IntelliJ

我有一個Play 2.2項目,並且正在使用IntelliJ12。我通過從命令行執行play idea生成了項目文件。 (play2插件太差了,我每次更改依賴項時都必須這樣做,考慮到我為“最終”獲得了Play支持而付出了代價,這是非常出色的) 無論如何,現在的問題是我希望隨着項目的發展具有更多的模塊化。 我想要幾個可以編譯為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

這是主要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 Build文件。

這是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項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM