2014-10-15 2 views
4

저는 Play, Scala.js 및 기타 다양한 장난감을 사용하여 매우 복잡한 프로젝트를 진행하고 있습니다. 당분간 Build.scala에 내장되어 있습니다. 왜냐하면 아직 모든 부분을 build.sbt에서 작동시키지 못했기 때문입니다. (이것에 대해서는 sbt 메일 링리스트에서 별도로 얘기했습니다.)Build.scala에서 sbt-web을 어떻게 작동합니까?

이제 Play의 새로운 지문 인식 기능을 활용하고 싶습니다. 즉, sbt-web으로 게임을 시작하는 것입니다. 나는 분명히 뭔가 잘못하고있다. 내 plugins.sbt에 보통의 파이프 라인 플러그인을 추가했습니다 :

addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1") 

addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0") 

addSbtPlugin("com.typesafe.sbt" % "sbt-gzip" % "1.0.0") 

을하지만 내 프로젝트의 JVM 측에 SbtWeb를 추가하려고 할 때 :

lazy val scalajvm = Project(
    id = "scalajvm", 
    base = file("scalajvm") 
) enablePlugins (play.PlayScala, SbtWeb) settings (scalajvmSettings: _*) aggregate (scalajs) 

SBT는하지 않았다 불평 SbtWeb을 알고로드하지 않을 것입니다. 이상한. 명시 적 가져 오기를 추가했습니다.

import com.typesafe.sbt.web.SbtWeb 

로드가 허용됩니다. 그런 다음 파이프 라인 자체를 작동 시키려고했습니다.

pipelineStages := Seq(digest, gzip), 

이제 파이프 라인 스테이지를 알지 못한다고 불평했습니다. 다시 말하지만, 내가 명시 적으로 가져 오기를 추가, 내가 뭔가 잘못하고 있어요 것을 의심하지만 : 다음 단계로 저를 얻는다

import com.typesafe.sbt.web.Import.pipelineStages 

: 다이제스트에 대해 알고하지 않습니다 불평 - 완전히 신비, 이후 내 plugins.sbt에서 바로 거기에 지정있어.

제안 사항? 내 추측으로는 플러그인 레벨에서 뭔가를 놓치고 있지만, 나는 그것이 무엇인지 전혀 모른다. 내가 찾을 수있는 모든 문서는 위의 내용을 나열하지만 모두 build.sbt라고 가정합니다. (예, 내 build.properties에 sbt 0.13.5를 지정하고 plugins.sbt에서 Play 2.3.5를 사용했습니다.)

답변

0

내 프로젝트의 Build.scala에서도 sbt-web을 사용합니다. 다음과 같은 수입이 필요합니다

import com.typesafe.sbt.digest.Import._ 
import com.typesafe.sbt.gzip.Import._ 
import com.typesafe.sbt.rjs.Import._ 
import com.typesafe.sbt.web.Import._ 

파이프 라인 개체의 각 (유형 TaskKey[Pipeline.Stage]의 값) 해당 모듈의 가져 오기 객체에서 온다. 왜 이런 구조인지 확실하지 않습니다. 내가 처음이 일을 할 때 이것을 위해 필요한 것을 포함하는 것과 같은 경이를 가지고 있음을 기억한다. 나는 그것이 sbt의 auto-plugin 기능을 부분적으로 지원하는 방식으로 구조화되었다고 생각한다.

+0

알았어, 고마워. 고마워. –

0

일반적으로 AutoPlugin이기 때문에 digest 작업은 자동으로 가져옵니다. 명시 적으로 가져올 수 있습니다.

import com.typesafe.sbt.digest.Import.digest 
+0

Build.scala에서 AutoPlugins이 작동하지 않습니까? 나는 이러한 모든 수입품을 명시 적으로 할 필요가 기대되는 행동인지 아니면 뭔가가 더 깊이 잘못되었다는 표시인지 여부를 알아 내려고하고 있습니다. (나는 AutoPlugins가 build.sbt 전용이라고 믿을 수 있지만 그들에 대해 많이 알지는 않는다 ...) –

+0

AutoPlugins은 설정과 종속성을 자동으로 가져 오기 때문에 "자동"입니다. 그래서'enablePlugins (SbtWeb)'을하면 SbtWeb에 의존하는 모든 것들 (예를 들어 sbt-digest)의 설정을 얻게됩니다. "자동"은 Build.scala에서 심볼을 자동으로 가져 오는 것과 아무런 관련이 없습니다. –

관련 문제