6

次の(最小限の)leiningenプロジェクトを検討してください

./project.clj:

(defproject repro "0.1.0-SNAPSHOT"
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [midje               "1.5.1"]])

./repro/src/repro/core.clj:

(ns repro.core)

./repro/test/repro/core_test.clj:

(ns repro.core-test
  (:require [repro.core  :refer :all]
            [midje.sweet :refer :all]))

(facts "about numbers"
       (fact "trivial"
         1 => 1) )

leiningen midje プラグインがインストールされている場合、コマンド プロンプトで次のように実行されます。

lein clean
lein midje
~~> All checks (1) succeeded.

ただし、leiningen プロジェクトを Intellij 12.1.5 Community Edition にインポートすると、ファット スタック トレースが表示されます。

Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
    ...
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333)
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:988)
at clojure.lang.Namespace.find(Namespace.java:188)
at clojure.core$find_ns.invoke(core.clj:3728)
at clojure.core$the_ns.invoke(core.clj:3760)
at clojure.core$ns_name.invoke(core.clj:3767)
at midje.Bootstrap$bootstrap.invoke(Bootstrap.clj:8)
at midje.sweet__init.load(Unknown Source)
at midje.sweet__init.<clinit>(Unknown Source)
... 37 more

La Clojure + Intellij が midje の前提条件の一部を見つけられないように見えますが、これは奇妙です。なぜなら、La Clojure は leiningen.m2ディレクトリからクラスパスを実行しているためです。

Intellij 用の midje プラグインを探しましたが、今のところ運がありません。

私は emacs + leiningen だけを使用して満足していますが、私のチームは Intellij を望んでいるので、これが必要です。

4

0 に答える 0