Monday, April 16, 2018

SBT



https://www.scala-sbt.org/1.x/docs/Library-Dependencies.html
libraryDependencies += groupID % artifactID % revision % configuration
libraryDependencies is declared in Keys like this:
val libraryDependencies = settingKey[Seq[ModuleID]]("Declares managed dependencies.")
https://stackoverflow.com/questions/21389392/how-to-set-system-properties-for-runmain-on-command-line
sbt '; set javaOptions += "-Dconfig.resource=../application.conf" ; runMain akka.Main com.my.main.Actor'
javaOptions ++= Seq("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1045")

https://github.com/sbt/sbt-release

val removeSnapshot = true// sys.props.contains("release")
https://stackoverflow.com/questions/8732891/can-i-access-my-scala-apps-name-and-version-as-set-in-sbt-from-code
https://github.com/sbt/sbt-buildinfo
Add the following in your build.sbt:

lazy val root = (project in file(".")).
  enablePlugins(BuildInfoPlugin).
  settings(
    buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion),
    buildInfoPackage := "hello"
  )
/** This object was generated by sbt-buildinfo. */
case object BuildInfo {
  /** The value is "helloworld". */
  val name: String = "helloworld"
  /** The value is "0.1-SNAPSHOT". */
  val version: String = "0.1-SNAPSHOT"
  /** The value is "2.10.3". */
  val scalaVersion: String = "2.10.3"
  /** The value is "0.13.2". */
  val sbtVersion: String = "0.13.2"
  override val toString: String = "name: %s, version: %s, scalaVersion: %s, sbtVersion: %s" format (name, version, scalaVersion, sbtVersion)
}


libraryDependencies ++= Dependencies.scheduler,

https://github.com/sbt/sbt/issues/3050
ZipException when switching from sbt 1.0 to sbt 0.13 #3050
If you're using bash, by default ** only goes one level deep, you need to enable globstar or use some other techique to recurse into subdirectories like:
find . -name target -exec rm -r "{}" \;
https://www.scala-sbt.org/1.0/docs/Running.html
brew install sbt@1
Run sbt in your project directory with no arguments:
$ sbt
Running sbt with no command line arguments starts sbt shell. sbt shell has a command prompt (with tab completion and history!).
For example, you could type compile at the sbt shell:
> compile
package

History Commands 


sbt shell remembers history, even if you exit sbt and restart it. The simplest way to access history is with the up arrow key. The following commands are also supported:
!Show history command help.
!!Execute the previous command again.
!:Show all previous commands.
!:nShow the last n commands.
!nExecute the command with index n, as shown by the !: command.
!-nExecute the nth command before this one.
!stringExecute the most recent command starting with 'string.'
!?stringExecute the most recent command containing 'string.'

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts