Build.scala, % 및 %% 기호 의미


155

나는 새로운 게임입니다! Framework 2.1 (Java 버전)이며 스칼라에 대한 경험이 없습니다. Build.scala의 정의 %%%의미 및 의미를 이해하지 못합니다. 나는 그들에 대해 봤지만 그들의 의미를 찾을 수 없었다.

내 Build.scala 파일에는 다음이 있습니다.

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

첫 번째 줄이 단일 % 기호를 사용하고 두 번째 줄이 2 % 기호를 사용하는 이유는 무엇 %%입니까? 그들은 무엇입니까?

답변:


184

공식 문서에서 :

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

올바른 스칼라 버전 얻기 %%

당신이 사용하는 경우 groupID %% artifactID % revision대신 groupID % artifactID % revision(차이가 두 배 %%애프터 groupID), SBT는 이슈 이름으로 프로젝트의 스칼라 버전을 추가 할 것입니다. 이것은 바로 가기입니다.

당신은 이것을없이 쓸 수 있습니다 %%:

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

scalaVersion에 대한 빌드가 같다고 가정하면 2.9.1다음은 동일합니다.

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

위에서 볼 수 있듯이 %%를 사용하는 경우 버전을 지정할 필요가 없습니다.


2
"프로젝트의 스칼라 버전"은 SettingKey 값을 의미합니다 scalaVersion.
Gordon Gustafson

4
내가 할 때 내 추가 질문이 필요합니다 별도의 SO 질문을 제기 생각하지 않습니다 하지 사용하려면 %%? 나에게 그것은 '더 나은'것처럼 보이고 항상 사용해야합니다 ....
피터 Perháč

10
@ PeterPerháč %%스칼라 버전 (예 : 순수 Java 라이브러리)이 포함되지 않은 아티팩트 에는 사용할 수 없습니다 .
Toxaris

25

이것은 빌드 도구로 사용되는 SBT의 일부입니다. 특히 이것은 import 문입니다.

백분율 기호 %는 실제로 종속성을 빌드하는 데 사용되는 방법입니다. 이중 백분율 기호 %%는 현재 스칼라 버전을 주입합니다. 이렇게하면 실행중인 스칼라 버전에 맞는 라이브러리를 얻을 수 있습니다. Scala를 업데이트 할 때 빌드 파일을 변경하지 않아도됩니다.

더 자세한 정보는 여기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.