5

私たちは play 2.1.1 (scala) を使用しており、依存関係を結び付けるいくつかの努力の中で、いくつかの古い dep が 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は、特定の推移的な依存関係に関連するコア依存関係を削除します。私ができることを望むのは、コアフレームワークから明示的な依存関係全体を削除することです)

4

2 に答える 2

7

@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"
)
于 2013-04-09T22:57:49.350 に答える
3

コアの依存関係を除外する方法はわかりませんが、Build.scalaファイル内の推移的な依存関係を除外してみてください:

val appDependencies = Seq(
     ...
     ("oauth.signpost" % "signpost-commonshttp4" % "1.2.1.2") .exclude("org.apache.httpcomponents", "httpclient")
    )

またはintransitive()メソッドを使用します。

val appDependencies = Seq(
     ...
     ("oauth.signpost" % "signpost-commonshttp4" % "1.2.1.2") .intransitive()
    )

これは完全な解決策ではありませんが、役立つ場合があります。

于 2013-04-09T08:15:34.993 に答える