Playframework Play Framework核心依赖项管理/排除
我们使用的是Play2.1.1(scala),在一些努力中,我们发现play框架直接加载了几个旧的DEP 具体地说,oauth.signpost引入了http组件4.0(以及commons codec 1.3),而我们对http组件4.1和commons codec 1.6有其他依赖性 在这方面的文档似乎非常稀少-至少在较旧的play 1.2.x中,dependencies.yml更为明确,但我找不到当前2.1.x版本的任何参考 我不想在${PLAY2_HOME}/framework/project中使用框架的Build.scala来删除依赖项(在这个特定的应用程序中,我们永远不需要oauth.signpost),但到目前为止,这似乎是唯一的方法 有什么建议吗Playframework Play Framework核心依赖项管理/排除,playframework,playframework-2.1,Playframework,Playframework 2.1,我们使用的是Play2.1.1(scala),在一些努力中,我们发现play框架直接加载了几个旧的DEP 具体地说,oauth.signpost引入了http组件4.0(以及commons codec 1.3),而我们对http组件4.1和commons codec 1.6有其他依赖性 在这方面的文档似乎非常稀少-至少在较旧的play 1.2.x中,dependencies.yml更为明确,但我找不到当前2.1.x版本的任何参考 我不想在${PLAY2_HOME}/framework/proje
(编辑:我还遇到了这样一个问题:它与特定的可传递依赖项相关,我更希望能够从核心框架中删除整个显式依赖项)我不知道如何排除核心依赖项,但您可以尝试在
Build.scala
文件中排除可传递依赖项:
val appDependencies = Seq(
...
("oauth.signpost" % "signpost-commonshttp4" % "1.2.1.2") .exclude("org.apache.httpcomponents", "httpclient")
)
或使用以下方法:
这不是一个完美的解决方案,但它可能会帮助您。谢谢@nico_ekito
您为我指明了正确的方向,通过为play版本本身声明显式排除,我已经能够删除核心框架依赖项:
val appDependencies = Seq(
// play framework drags in quite a few deps we dont need. this is how we pare it back.
("play" % "play_2.10" % "2.1.1")
.exclude("oauth.signpost", "signpost-core")
.exclude("oauth.signpost","signpost-commonshttp4"),
"com.github.tototoshi" %% "scala-csv" % "0.7.0",
"se.radley" %% "play-plugins-salat" % "1.2",
"org.specs2" %% "specs2" % "1.14" % "test"
)
感谢分享您的最终解决方案@杰森·德怀尔第2.6场比赛还是这样吗?build.sbt中不再存在显式依赖项,而是
enablePlugin(PlayScala)
。
val appDependencies = Seq(
// play framework drags in quite a few deps we dont need. this is how we pare it back.
("play" % "play_2.10" % "2.1.1")
.exclude("oauth.signpost", "signpost-core")
.exclude("oauth.signpost","signpost-commonshttp4"),
"com.github.tototoshi" %% "scala-csv" % "0.7.0",
"se.radley" %% "play-plugins-salat" % "1.2",
"org.specs2" %% "specs2" % "1.14" % "test"
)