1

Scala ネイチャーと Java ネイチャーの両方を (生成された .project ファイルに) 自動的に含めるために、Eclipse 用に構成したい sbt play2 プロジェクトがあります。自然を手動で追加することでEclipse内でこれを行うことができますが、Eclipseプラグインでこれを自動的に行う必要があります。

プラグインのデフォルトの動作は、appDependencies に javaCore を含めない限り、両方の性質を追加することです。これを行う必要がありますjavaCore を含めると、mainLang は自動的に JAVA に設定され、Scala Nature は構成から除外されます。

参照: https://github.com/playframework/Play20/wiki/Migrationの下のビルド ファイルの変更

mainLang をオーバーライドして Scala に設定する方法はありますか? または、Java Nature と一緒に Scala Nature を含める別の方法はありますか?

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

object ApplicationBuild extends Build {

  val appName         = "SampleApp"
  val appVersion      = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    javaCore, javaJdbc, javaEbean
  )

  val main = play.Project(appName, appVersion, appDependencies).settings(
    // Want to set mainLang = SCALA here, but don't know how
  )
}

私はすべてに sbt を使用しているため、play コマンドは立ち入り禁止です (追加のシステム依存を避けるため)。

編集: play-sbt 2.1.0、Scala 2.10.1-RC1、および sbt 0.12.2 を使用しています

4

1 に答える 1

2

Play sbt-eclipseのソースコード(ここここ)を見ると、次のBuild.scalaファイルを使用して動作させることができました。

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

object ApplicationBuild extends Build {

  val appName         = "SampleApp"
  val appVersion      = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    javaCore, javaJdbc, javaEbean
  )

  import com.typesafe.sbteclipse.core._
  import com.typesafe.sbteclipse.core.EclipsePlugin._
  import scala.xml.transform.RewriteRule

  val main = play.Project(appName, appVersion, appDependencies).settings(
    EclipseKeys.projectFlavor := EclipseProjectFlavor.Scala,
    EclipseKeys.projectTransformerFactories := Seq[EclipseTransformerFactory[RewriteRule]]()
  )
}

3つのインポートを忘れないでください。

直接使用するより良い方法があるはずですがeclipseCommandSettings("SCALA")、私はそれを見つけられませんでした。

于 2013-03-02T14:14:31.273 に答える