2016-04-09 17 views
2

Şimdi Akka, Play Framework, Scala ve derleme aracı SBT ile nispeten küçük bir proje yürütüyorum. Bununla birlikte, bundan daha büyük bir proje inşa ettim ve çok hızlı bir şekilde inşa etti. Ancak bir süre sonra projemi oluşturmaya çalışıyorum ve derlemek için uzun zaman alıyor (Toplam süre: 904 s).sbt derlemesi tamamlamak için çok uzun zaman alır

> ~/nlp-search/code(branch:feature/demo-app-api*) » sbt compile   
> [email protected] [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 

Benim build.sbt: Ben sabahtan mücadele ediyorum

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 

. Neden bu kadar uzun sürdüğünü anlamıyorum.

Çok önceden şimdiden teşekkür ederiz.

+1

JSON okuyucularını ve yazarlarını anında üreten birçok makro içerik içeriyor mu? Benim için bir katil oldu. Implicits'ı önbelleğe aldım ve yapım sürelerini 5+ dakikadan 30 saniyeye kısaltdım. –

+0

Evet, karmaşık JSON oluşturmak için 8 dolaysızım var. Denemek için bana bir örnek gösterebilir misin? Shapeless lib kullanıyor muydun? Yorumun için teşekkürler. – Renien

+1

Orak ve bsonpickle kullanıyorum. Önceden uygulamam ve önbelleklerim gibi önbelleğe aldım: nesne JsonSerialization {örtük tembel val userReader = {val userReader =(); macroR [Kullanıcı]}; …} ' –

cevap

2

Gerçekten bir cevap değil, belki bir ipucu… Makro uygulamalar tarafından oluşturulan çok sayıda örtünüz varsa (genellikle, kendi sınıf sınıflarınız ve benzerleriniz için JSON okuyucuları ve yazarları), derleme önemli ölçüde yavaşlayabilir . Sen (upickle örneğin) Böyle bir şey implicits kendiniz önbelleğe deneyebilirsiniz:

object JsonSerialization { 
    implicit lazy val userReader = { val userReader =(); macroR[User] } 
    implicit lazy val userWriter = { val userWriter =(); macroR[Writer] } 
} 

Ayrıca şekilsiz en cachedImplicit bir göz, ayrıca this question belirtilen olmasını isteyebilirsiniz.

İlgili konular