2013-03-01 44 views
1

我有一个sbt play2项目,我想要为eclipse进行配置,以便自动(在生成的.project文件中)包含Scala自然和Java本质。我可以通过手动添加自然的方式在eclipse中完成此操作,但我希望eclipse插件自动为我执行此操作。在Play2中包含Scala和Java自然项目使用javaCore编写的项目

插件的默认行为是添加这两个性质除非您包括的javacore在appDependencies,这是我需要做的。当您包含javaCore时,mainLang会自动设置为JAVA,并且配置中不包括Scala自然。

看:下更改构建文件

https://github.com/playframework/Play20/wiki/Migration有没有办法覆盖mainLang并将其设置为Scala呢?或者还有另外一种方法将Java Scala Nature包含在Java自然中?

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的一切,所以打命令关闭的限制(以避免额外的系统依赖性)

编辑:我使用的播放SBT 2.1.0,斯卡拉2.10.1-RC1,和SBT 0.12.2

回答

2

通过查看播放SBT-Eclipse的源代码(herehere),我设法使它工作使用以下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")但我没有找到它。

+0

这个窍门!谢谢你的时间!我试图查看源代码,但无法破解代码,我很高兴你可以:) – 2013-03-04 14:21:35