編集:
2013年1月27日現在のバージョン情報:
Scala 2.10.0
IntelliJ IDEA Leda 123.139(EAP)
Scalaプラグインバージョン0.7.108(ナイトリービルド)
JDK 7u11 Joda
Time 2.1
ScalaJ-Time 2.9.1-0.6
SBTでの作業に進展が見られなかったため、SBTでの作業をあきらめました。IntelliJとSBTを組み合わせる方法がわかりません。何時間も試した後、最初に始めたところに行き着きました。 。
私のJodaTimeライブラリにはScalaj-Timejarが含まれています。
ジョイントコンパイル(最初にScala、次にJavaとvv)、外部ビルドから、依存関係のScalaライブラリ上にJodaTimeライブラリを持ち上げるまで(はい、私もそうしました)、設定のほぼすべての組み合わせを試しました。キャッシュを無効にします。プロジェクトを「作成」するか、現在のファイルを「実行」するか、「コンパイル」するかに関係なく、ランダムに生成される一連のエラーだけが発生します。そして、時々、それは機能します。はい、それはばかげているように聞こえますが、動作は未定義です。何が原因なのかわかりません。表示される3つの異なるエラーメッセージを数えました。それらをpastie.orgにアップロードします。そうしないと、スペースがかかりすぎます:http://pastie。
私が試したことのないこと:上記のアプリ/ライブラリの以前のリリースに戻って、 SBTに深く入り込んでください(私はそれが価値がないと思った)。
このスレッドに何を期待しますか?私は誰かがこの問題に対する固溶体を提供することを期待していますが、最良の場合、SBT(オプション)についての言及は含まれていません。
また、補足として、 Joda-Timeがライブラリを壊れた形式で出荷するのはなぜですか?この背後にある、誰もが知っておくべき秘密はありますか?FromString
リリースバージョンに含めることの問題は何でしたか?(私はまだそれがすべての原因だと思います)
よろしく、
ダニエル
元の投稿:(これは無視してかまいません)
IntelliJの最新ビルド(123.139)であるScala 2.10.0を使用していますが、これまでのところ問題は発生していません。
Javaタイムライブラリを使用する代わりに、私はJoda Timeを使用したいと思っていました。そして、Scalaで使用する暗黙の要素がたくさんあるのを見て、それを試してみたかったのです。すべてのライブラリを追加しましたが、暗黙的に認識されませんでした。IDEAポップアップメニューからコンパイルしようとすると、次のエラーが表示されました。
error while loading DateTime, class file '~\workspace\Libraries\JodaTime\joda-time-2.1.jar(org/joda/time/DateTime.class)' is broken
(class java.lang.RuntimeException/bad constant pool tag 10 at byte 42)
error while loading DateTimeZone, class file '~\workspace\Libraries\JodaTime\joda-time-2.1.jar(org/joda/time/DateTimeZone.class)' is broken
(class java.lang.RuntimeException/bad constant pool tag 7 at byte 44)
error while loading AbstractInstant, class file '~\workspace\Libraries\JodaTime\joda-time-2.1.jar(org/joda/time/base/AbstractInstant.class)' is broken
(class java.lang.RuntimeException/bad constant pool tag 10 at byte 10)
それらのソースにアクセスして、インポートされていることにDateTime
気付きorg.joda.convert.FromString;
ましたが、リソースが存在しませんでした。Scalaがコンパイルされなかったのはそのためだと思いました。だから私は自分が何をすべきかをググった。そしてどこでも「SBT、SBT !!」と書かれていて、このSBTが何であるかを調べようとしていたので、 http:// wwwからバージョン0.12.2、手動インストール(Windows 7を使用)をインストールしました。 .scala-sbt.org/。IntelliJで実行したかったので、に移動し、その行を~\.sbt\plugins
含むファイルを作成し、https://github.com/mpeltonen/sbt-ideaからzipをダウンロードして抽出し、CMDを使用してそのフォルダーに移動しました。 、入力してbuild.sbt
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.2.0")
sbt
gen-idea
sbt内で、それは多くのことを行い、すべてがうまくいったように見えました。そこで、Joda Timeを実行したいプロジェクトに行きました。まず、Scala2.10.0をSBTに含めるのは非常に難しいようでした。ファイルを作成し、<PROJECT>\build.sbt
次の行を入力しました。
name := "Project"
version := "1.0"
scalaHome := Some(file("C:/Program Files (x86)/scala"))
scalaVersion := "2.10.0"
次に、scalaj-timeを含めるために、行に移動し<PROJECT>\project\project\
て作成build.sbt
しましたlibraryDependencies += "org.scalaj" %% "scalaj-time" % "0.6"
。
最後に、CMDで<PROJECT>に行き、「sbt」と入力すると、多くのファイルが(ダウンロード)ロードされ、うまくいったように見えたので、入力gen-idea
すると、すべて問題ありませんでした。
IntelliJを開いて、プロジェクトを簡単に開くことができました。Project Structureを開いたとき、Modulesに移動しましたが、2つのモジュールがありました:Project
とProject-build
。Project-buildを無視し、Projectモジュールをクリックすると、存在しないソースフォルダーとテストフォルダーがたくさんありました。たとえばsrc/main/scala
、それらをすべて削除してsrc
、ソースフォルダーとして追加しました。
Joda-Timeが外部ライブラリに含まれていないことに気づきました(ところで、私はJoda-Time2.1とScalaj-time0.6を使用しています)ので、自分で追加する必要がありました。joda-timeライブラリは.jarであり、scalaj-timeはフォルダですが、問題ありませんよね?簡単なprintln( DateTime.now )
命令を実行することはできましたが(以前は可能かどうかはわかりませんが、試しませんでした)、+ 2.months
それでも不可能でした。これがスクリーンショットですので、あなたはアイデアを得ることができます:
私がどのように進んだかを非常に詳細に説明したと思います。私が間違ったことを見つけていただければ幸いです。私はこれを解決するために何時間も働いてきました、しかし結局、私は最初にいたところに着陸しました...
お時間をいただきありがとうございます!
よろしく!