首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sbt编译需要很长时间才能完成。

sbt编译需要很长时间才能完成。
EN

Stack Overflow用户
提问于 2016-04-09 12:06:22
回答 1查看 2.8K关注 0票数 3

我现在使用Akka、Play Framework、Scala和构建工具SBT运行一个相对较小的项目。然而,我已经建立了一个比这个更大的项目,它已经建立了相当快。但是现在,经过一段时间之后,我正在尝试构建我的项目,而且编译需要很长时间(总时间: 904 s)。

代码语言:javascript
复制
> ~/nlp-search/code(branch:feature/demo-app-api*) » sbt compile         
> renienj@Rajani [info] Loading project definition from
> /Users/renienj/nlp-search/code/project [info] Set current project to
> nlp-search (in build file:/Users/renienj/nlp-search/code/) [info]
> Compiling 115 Scala sources and 1 Java source to
> /Users/renienj/nlp-search/code/target/scala-2.11/classes... [warn]
> /Users/renienj/nlp-search/code/app/api/parsedquery/ParsedQuery.scala:14:
> imported `format' is permanently hidden by definition of value format
> in object ParsedQuery [warn]   import Sentence.format [warn]          
> ^ [warn]
> /Users/renienj/nlp-search/code/app/api/parsedquery/Sentence.scala:14:
> imported `format' is permanently hidden by definition of value format
> in object Sentence [warn]   import Phrase.format [warn]               
> ^ [warn]
> /Users/renienj/nlp-search/code/app/api/parsedquery/Sentence.scala:15:
> imported `format' is permanently hidden by definition of value format
> in object Sentence [warn]   import  Filter.format [warn]              
> ^ [warn]
> /Users/renienj/nlp-search/code/app/api/parsedquery/Sentence.scala:16:
> imported `format' is permanently hidden by definition of value format
> in object Sentence [warn]   import Order.format [warn]               
> ^ [warn]
> /Users/renienj/nlp-search/code/app/backend/intelligenceServices/nlp/executor/StreamExecutor.scala:23:
> abstract type pattern OT is unchecked since it is eliminated by
> erasure [warn]     case x: OT => [warn]             ^ [warn]
> /Users/renienj/nlp-search/code/app/backend/intelligenceServices/merchRules/io/DAO.scala:27:
> method newTermName in trait Names is deprecated: Use TermName instead
> [warn]       String.valueOf(x.map(x => x.toChar)).unpickle[MerchRule]
> [warn]                                                    ^ [warn]
> /Users/renienj/nlp-search/code/app/backend/solrAccess/cache/SolrCacheProvider.scala:24:
> method newTermName in trait Names is deprecated: Use TermName instead
> [warn]       x.pickle.value [warn]         ^ [warn]
> /Users/renienj/nlp-search/code/app/backend/solrAccess/cache/SolrCacheProvider.scala:30:
> method newTermName in trait Names is deprecated: Use TermName instead
> [warn]       BinaryPickle(x).unpickle[DocumentList] [warn]            
> ^ [warn] there were 9 feature warnings; re-run with -feature for
> details [warn] 9 warnings found [success] Total time: 904 s, completed
> Apr 9, 2016 5:07:09 PM

我的build.sbt:

代码语言:javascript
复制
name := """nlp-search"""

version := """3.0-RC1"""

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.7"

resolvers += Resolver.mavenLocal

val akkaVersion = "2.3.12"

libraryDependencies ++= Seq(
  "com.typesafe.akka"     %% "akka-actor"       % akkaVersion,
  "com.typesafe.akka"     %% "akka-contrib"     % akkaVersion,
  "com.typesafe.akka"     %% "akka-remote"      % akkaVersion,
  "com.typesafe.akka"     %% "akka-cluster"     % akkaVersion,
  "com.typesafe.akka"     %% "akka-testkit"     % akkaVersion,
  "org.apache.solr"       % "solr-solrj"        % "4.10.0",
  "org.apache.thrift"     % "libthrift"         % "0.9.2",
  "org.json"              % "json"              % "20080701",
  "org.skife.com.typesafe.config" % "typesafe-config" % "0.3.0",
  "net.debasishg"         %% "redisclient"      % "2.13",
  "org.scala-lang.modules" %% "scala-pickling"  % "0.10.0",
  "edu.stanford.nlp"      % "stanford-parser"   % "3.5.2",
  "edu.stanford.nlp" % "stanford-corenlp" % "3.5.2",
  "org.scalatest"         % "scalatest_2.11"    % "2.2.4" % "test",
  "com.kohls.search.qp"   % "api"               % "1.0.0",
  "com.typesafe.akka"     %% "akka-stream-experimental" % "1.0"
)

libraryDependencies += specs2 % Test

resolvers += "scalaz-bintray" at "https://dl.bintray.com/scalaz/releases"

publishArtifact in (Compile, packageDoc) := false

publishArtifact in packageDoc := false

sources in (Compile,doc) := Seq.empty

从早上开始我一直在挣扎。我真的不明白为什么要花这么长时间。

先谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2016-04-11 10:22:58

不是真正的答案,但也许是暗示…如果您有很多由宏应用程序(通常是您自己的案例类的JSON阅读器和作者)生成的关联,那么编译速度可能会大大减慢。您可以尝试用这样的方法(例如,upickle)来缓存植入者:

代码语言:javascript
复制
object JsonSerialization {
  implicit lazy val userReader = { val userReader = (); macroR[User] }
  implicit lazy val userWriter = { val userWriter = (); macroR[Writer] }
}

您可能还想看看无形的cachedImplicit,这在this question中也提到过。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36516531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档