我有一个sbt play2项目,我想为eclipse配置,自动包含Scala性质和Java性质(在生成的.project文件中)。我可以通过手动添加自然来在eclipse中执行此操作,但我希望eclipse插件能够自动为我执行此操作。
插件的默认行为是添加两个性质 UNLESS 在appDependencies中包含javaCore,我需要这样做。当您包含javaCore时,mainLang会自动设置为JAVA,并且配置中会排除Scala Nature。
请参阅构建文件更改下的https://github.com/playframework/Play20/wiki/Migration
有没有办法覆盖mainLang并将其设置为Scala?或者还有另一种方法可以将Scala Nature与Java 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-sbt 2.1.0,Scala 2.10.1-RC1和sbt 0.12.2
答案 0 :(得分:2)
通过查看Play sbt-eclipse源代码(here和here),我设法使用以下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")
,但我没有找到它。