2017-09-01 100 views
1

這是在我的項目當前內容根配置:Intellij SBT項目:如何更改內容根目錄?

current configuration

不過,我希望「斯卡拉」的目錄是實際測試內容根,並沒有名爲「test」的目錄。如果我修改它,我會收到「模塊是從Sbt導入的警告,重新導入後,其配置的任何更改都可能會丟失。」(事實上,他們是)。

enter image description here

不幸的是,我找不到在哪裏我Build.scala文件(或任何其他文件)此配置聲明。我能做些什麼來一勞永逸地說服IntelliJ:「scala」是正確的測試內容根?

這是我Build.scala文件(這是一個播放2.5.4項目,如果它的事項):

import play.routes.compiler.StaticRoutesGenerator 
import play.sbt.PlayScala 
import play.sbt.routes.RoutesKeys._ 
import sbt.Keys._ 
import sbt._ 

object Build extends Build { 
    val main = Project("Mp3Streamer", file(".")).enablePlugins(PlayScala).settings(
    scalaVersion := "2.11.8", 
    version := "1.0-SNAPSHOT", 
    addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full), 
    libraryDependencies ++= Seq(
     // a bunch of dependencies 
    ), 

    resolvers += Resolver.mavenLocal, 
    javaOptions ++= Seq("-Xmx4000M", "-Xms2024M", "-XX:MaxPermSize=2000M"), 
    routesGenerator := StaticRoutesGenerator 
) 
} 

回答

0

通過增加scalaSource in Test := baseDirectory.value/"test" "/scala",我Build.scala文件,我已經能夠使「斯卡拉」文件夾中的測試源,但父「測試」文件夾仍然也是一個考驗來源:

enter image description here

據我所知,這是從遊戲繼承的設置,因爲如果我刪除代碼.enablePlugins(PlayScala),「測試」文件夾停止s是一個測試來源。按照https://www.playframework.com/documentation/2.5.x/Anatomy#Default-SBT-layout中的說明,我禁用了播放佈局,然後手動添加了從https://github.com/playframework/playframework/blob/master/framework/src/sbt-plugin/src/main/scala/play/sbt/PlayLayoutPlugin.scala#L9複製的源和資源目錄,僅修改了測試源並添加了自己的資源文件夾。我修改Build.scala文件現在是:

val main = Project("Mp3Streamer", file(".")) 
     .enablePlugins(PlayScala) 
     .disablePlugins(PlayLayoutPlugin) 
     .settings(
      target := baseDirectory.value/"target", 

      sourceDirectory in Compile := baseDirectory.value/"app", 
      // My change 
      sourceDirectory in Test := baseDirectory.value/"test"/"scala", 

      resourceDirectory in Compile := baseDirectory.value/"conf", 

      scalaSource in Compile := baseDirectory.value/"app", 
      // My change 
      scalaSource in Test := baseDirectory.value/"test"/"scala", 
      // I've added this resource 
      resourceDirectory in Test := baseDirectory.value/"test"/"resources", 

      javaSource in Compile := baseDirectory.value/"app", 

      sourceDirectories in(Compile, TwirlKeys.compileTemplates) := Seq((sourceDirectory in Compile).value), 
      sourceDirectories in(Test, TwirlKeys.compileTemplates) := Seq((sourceDirectory in Test).value), 

      // sbt-web 
      sourceDirectory in Assets := (sourceDirectory in Compile).value/"assets", 
      sourceDirectory in TestAssets := (sourceDirectory in Test).value/"assets", 


      resourceDirectory in Assets := baseDirectory.value/"public", 

      // Native packager 
      sourceDirectory in Universal := baseDirectory.value/"dist", 

      // Everything else is the same as the original Build.scala file 

老實說,這種感覺非常哈克,我可能會最終改變我的目錄結構,以配合播放的默認...但它的原則是計數!