[英]how to use project/Build.scala generate java playproject?
I use playframework2.2: try to build a play support project. 我使用playframework2.2:尝试构建一个游戏支持项目。
in my Build.scala, I want to add play.Project.playJavaSetting: 在我的Build.scala中,我想添加play.Project.playJavaSetting:
val main = play.Project(appName, appVersion, appDependencies)
.settings(play.Project.playJavaSettings) //error here
.settings(
resolvers += "webjars" at "http://webjars.github.com/m2",
resolvers += "typesafe" at "http://repo.typesafe.com/typesafe/release"
)
the error is: 错误是:
[error] F:\git\play-example-form\project\Build.scala:19: overloaded method value
settings with alternatives:
[error] (ss: sbt.Def.Setting[_]*)sbt.Project <and>
[error] => Seq[sbt.Def.Setting[_]]
[error] cannot be applied to (Seq[sbt.Setting[_]])
[error] .settings(play.Project.playJavaSettings)
[error] ^
If I do not add playJavaSetting, it give me error about wrong collection apply, I mean: 如果我不添加playJavaSetting,它会给我关于错误收集适用的错误,我的意思是:
val main = play.Project(appName, appVersion, appDependencies)
//.settings(play.Project.playJavaSettings)
and the error is: 错误是:
[error] required: play.api.data.Form<StudentFormData>,scala.collection.immutab
le.Map<String,Object>,scala.collection.immutable.List<String>,scala.collection.i
mmutable.Map<String,Object>,scala.collection.immutable.Map<String,Object>
[error] found: play.data.Form<StudentFormData>,java.util.Map<String,Boolean>,j
ava.util.List<String>,java.util.Map<String,Boolean>,java.util.Map<String,Boolean
you can see the framework apply the scala.collection.immutable.List instead of play.util.List, If I really want to apply the java collections how to set the environment setting in Build.scala file? 您可以看到框架应用了scala.collection.immutable.List而不是play.util.List,如果我真的想应用Java集合,如何在Build.scala文件中设置环境设置?
You should change 你应该改变
.settings(play.Project.playJavaSettings) .settings(play.Project.playJavaSettings)
to 至
.settings(play.Project.playJavaSettings: _*) .settings(play.Project.playJavaSettings:_ *)
The settings
method is declared as def settings(ss: Setting[_]*)
, which means it takes repeated parameters of type Setting[_]
. settings
方法被声明为def settings(ss: Setting[_]*)
,这意味着它需要重复使用类型为Setting[_]
参数。 The play.Project.playJavaSettings
is of type Seq[Setting[_]]
. play.Project.playJavaSettings
的类型为Seq[Setting[_]]
。 To convert one to another Scala has a special type annotation. 将一个Scala转换为另一个具有特殊的类型注释。
If you are interested in details check 4.6.2 Repeated Parameters of The Scala Language Specification 如果您对细节感兴趣,请检查4.6.2 Scala语言规范的 重复参数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.