web-dev-qa-db-ja.com

Build.scala、%および%%記号の意味

プレイするのは初めてです! Framework 2.1(Javaバージョン)。scalaの経験はありません。私は何が何であるか理解していない%および%%はBuild.scalaを意味します。私はそれらについてグーグルで調べましたが、それらの意味が見つかりませんでした。

私のBuild.scalaファイルには次のものがあります。

"org.hibernate" % "hibernate-entitymanager" % "4.1.0.Final",
"com.typesafe" %% "play-plugins-mailer" % "2.1"

最初の行が単一の%記号を使用し、2番目の行が2つのパーセント記号を使用する理由%%?それらは何のため?

138
Franco

公式文書から:

http://www.playframework.com/documentation/2.1.1/SBTDependencies

_%%で正しいScalaバージョンを取得する

groupID %% artifactID % revisionの代わりにgroupID % artifactID % revisionを使用する場合(groupIDの後にダブル%%があります)、SBTはプロジェクトのScalaバージョンを追加しますアーティファクト名。これは単なるショートカットです。

%%なしでこれを書くことができます:

val appDependencies = Seq(
  "org.scala-tools" % "scala-stm_2.9.1" % "0.3"
)

ビルドのscalaVersion2.9.1であると仮定すると、以下は同一です:

val appDependencies = Seq(
  "org.scala-tools" %% "scala-stm" % "0.3"
)

上記でわかるように、%%を使用する場合、バージョンを指定する必要はありません。

161
Mingyu

これは、Playがビルドツールとして使用するSBTの一部です。具体的には、これはインポート文です。

パーセント記号%は、実際には依存関係を構築するために使用されるメソッドです。二重パーセント記号%%は、現在のScalaバージョン-これにより、実行中のscalaのバージョンに対応する正しいライブラリを取得できます。これにより、変更する必要がなくなります。 Scalaを更新するときのビルドファイル。

詳細 こちら

23