Build.scala,% ve %% sembolleri anlamı


155

Ben oynamak için yeniyim! Framework 2.1 (java sürümü) ve scala ile hiçbir deneyimi yoktur. Ben nelerdir ve ne geliyor anlamıyorum %ve %%Build.scala demek. Onları aradım ama anlamlarını bulamadım.

Build.scala dosyamda var:

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

İlk satır neden tek bir% sembolü, ikinci satır ise yüzde iki sembol kullanıyor %%? Ne için bunlar?

Yanıtlar:


184

Resmi belgelerden:

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

İle doğru Scala sürümünü edinmek %%

Eğer kullanırsanız groupID %% artifactID % revisionyerine groupID % artifactID % revision(fark çift %%sonra groupID), SBT eser adının projenizin Scala versiyonunu katacak. Bu sadece bir kısayoldur.

Bunu şunlar olmadan yazabilirsiniz %%:

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

Varsayarsak scalaVersionYapınızda için olduğu 2.9.1, şu aynıdır:

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

Yukarıda gördüğünüz gibi, kullanıyorsanız %%sürümü belirtmeniz gerekmez.


2
"Projenizin Scala versiyonu" SettingKey değeri anlamına gelir scalaVersion.
Gordon Gustafson

4
Ben ne zaman: my ek soru için gereklidir ayrı SO konuyu gündeme sanmıyorum değil kullanımına istiyor %%? Bana göre 'daha iyi' gibi görünüyor ve her zaman kullanılmalıdır ....
Peter Perháč

10
@ PeterPerháč %%Scala sürümü içermeyen yapay nesnelerle (saf Java kütüphaneleri gibi) kullanamazsınız .
Toxaris

25

Bu, oyunun bir oluşturma aracı olarak kullandığı SBT'nin bir parçasıdır. Özellikle bu bir alma ifadesidir.

Yüzde sembolü %aslında bağımlılıklar oluşturmak için kullanılan bir yöntemdir. Çift yüzde işareti %%geçerli Scala sürümünü enjekte eder - bu, çalıştırdığınız scala sürümü için doğru kütüphaneyi almanızı sağlar. Bu, Scala'yı güncellediğinizde derleme dosyanızı değiştirmek zorunda kalmamaktır.

Daha fazla bilgi burada

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.