DRYな備忘録

Don't Repeat Yourself.

MacにScala(sbt)環境構築【sbt】【brew】【MacOSX10.8】

Goal

Log

[20:33:44]otiai10 % brew --version
0.9.4
[20:33:48]otiai10 % sudo brew install sbt
Warning: Your Xcode (4.6.2) is outdated
Please install Xcode 4.6.3.
==> Downloading http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.12.4/sbt-launch.jar
######################################################################## 100.0%
==> Caveats
You can use $SBT_OPTS to pass additional JVM options to SBT.
For convenience, this can specified in `~/.sbtconfig`.

For example:
    SBT_OPTS="-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
==> Summary
(beer)  /usr/local/Cellar/sbt/0.12.4: 3 files, 1.1M, built in 4 seconds
[20:33:48]otiai10 % which sbt
/usr/local/bin/sbt
[20:35:11]otiai10 % sbt --version
sbt launcher version 0.12.4

sbtって何?

みんなマクロマクロってカツオの仲間?

なるほどわからん

[20:41:01]otiai10 % mkdir ~/prj/scala
[20:41:04]otiai10 % cd prj/scala
[20:44:07]otiai10 % vi Hello.scala

Hello.scala

object Hello {
  def main(arg: Array[String]) = {
    println("Hello, Tainaka Ritsu!!")
  }
}

で、ビルドしようとすると

[20:44:42]otiai10 % sbt
Getting net.java.dev.jna jna 3.2.3 ...

:: problems summary ::
:::: WARNINGS
        module not found: net.java.dev.jna#jna;3.2.3

    ==== local: tried

      /Users/otiai10/.ivy2/local/net.java.dev.jna/jna/3.2.3/ivys/ivy.xml

    ==== typesafe-ivy-releases: tried

      http://repo.typesafe.com/typesafe/ivy-releases/net.java.dev.jna/jna/3.2.3/ivys/ivy.xml

    ==== Maven Central: tried

      http://repo1.maven.org/maven2/net/java/dev/jna/jna/3.2.3/jna-3.2.3.pom

    ==== sonatype-snapshots: tried

      https://oss.sonatype.org/content/repositories/snapshots/net/java/dev/jna/jna/3.2.3/jna-3.2.3.pom

        ::::::::::::::::::::::::::::::::::::::::::::::

        ::          UNRESOLVED DEPENDENCIES         ::

        ::::::::::::::::::::::::::::::::::::::::::::::

        :: net.java.dev.jna#jna;3.2.3: not found

        ::::::::::::::::::::::::::::::::::::::::::::::


:::: ERRORS
    SERVER ERROR: backend read error url=http://repo1.maven.org/maven2/net/java/dev/jna/jna/3.2.3/jna-3.2.3.pom


:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
unresolved dependency: net.java.dev.jna#jna;3.2.3: not found
Error during sbt execution: Error retrieving required libraries
  (see /Users/otiai10/.sbt/boot/update.log for complete log)
Error: Could not retrieve jna 3.2.3

ぐはぁ

ためしにsbt --helpしてみたんですよ。そしたら依存パッケージをインストールしはじめた!

https://gist.github.com/otiai10/6121439

マジsbtが謎ぃ...(^ω^ ≡ ;^ω^)

で、もういちど

[21:12:19]otiai10 % pwd
/Users/otiai10/prj/scala
[21:12:22]otiai10 % ls -la
total 8
drwxr-xr-x  3 otiai10  staff  102  7 31 20:44 .
drwxr-xr-x  6 otiai10  staff  204  7 31 20:41 ..
-rw-r--r--  1 otiai10  staff   93  7 31 20:44 Hello.scala
[21:12:26]otiai10 % sbt
[info] Set current project to default-a26276 (in build file:/Users/otiai10/prj/scala/)
> run
[info] Updating {file:/Users/otiai10/prj/scala/}default-a26276...
[info] Resolving org.scala-lang#scala-library;2.9.2 ...
[info] Done updating.
[info] Compiling 1 Scala source to /Users/otiai10/prj/scala/target/scala-2.9.2/classes...
[error] /Users/otiai10/prj/scala/Hello.scala:1: expected class or object definition
[error] Object Hello {
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 2 s, completed 2013/07/31 21:13:23
> exit
[21:13:28]otiai10 % vi Hello.scala
#  タイポしてた。Objectじゃなくてobject
[21:13:36]otiai10 % sbt
[info] Set current project to default-a26276 (in build file:/Users/otiai10/prj/scala/)
> run
[info] Compiling 1 Scala source to /Users/otiai10/prj/scala/target/scala-2.9.2/classes...
[info] Running Hello
Hello, Tainaka Ritsu!!
[success] Total time: 3 s, completed 2013/07/31 21:13:44
>

いけた

memo

  • なぜScalaか...
  • とくに理由は無い...
  • rpscala 来たけど思ったよりムズカシイ話してたのでこれやってた
  • thaks anyway!

f:id:otiai10:20130731212929p:plain