Jas*_*yer 5 playframework playframework-2.1
我们正在使用play 2.1.1(scala)并在一些努力中绑定我们的依赖项,发现有几个旧的deps直接由play框架加载.
具体来说,oauth.signpost引入了http-components 4.0(以及commons-codec 1.3),而我们在http-componts 4.1和commons-codec 1.6上有其他依赖关系.
这个领域的文档似乎相当稀少 - 至少在较旧的1.2.x中,依赖关系.yml有点更明确,但我找不到当前2.1.x版本的任何引用.
我不想在$ {PLAY2_HOME}/framework/project中使用框架的Build.scala来删除依赖项(在这个特定的应用程序中我们永远不需要oauth.signpost),但到目前为止这似乎是唯一的方法.
任何指针?
(编辑:我也遇到过这样的问题:Play Framework 2.1删除与特定传递依赖关系相关的核心依赖关系,我希望能够做的是从核心框架中删除整个显式依赖关系)
谢谢@nico_ekito!
你已经把我放在了正确的方向,通过声明播放版本本身的明确排除,我已经能够删除核心框架依赖:
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"
)
Run Code Online (Sandbox Code Playgroud)
我不知道如何排除核心依赖项,但您可以尝试排除Build.scala文件中的传递依赖项:
val appDependencies = Seq(
...
("oauth.signpost" % "signpost-commonshttp4" % "1.2.1.2") .exclude("org.apache.httpcomponents", "httpclient")
)
Run Code Online (Sandbox Code Playgroud)
或使用intransitive()方法:
val appDependencies = Seq(
...
("oauth.signpost" % "signpost-commonshttp4" % "1.2.1.2") .intransitive()
)
Run Code Online (Sandbox Code Playgroud)
这不是完美的解决方案,但它可能会对您有所帮助。
| 归档时间: |
|
| 查看次数: |
1776 次 |
| 最近记录: |