ClojureのコードをMaven2でビルドする。スマートフォン用の表示で見る設計と実装の狭間で。この広告は、90日以上更新していないブログに表示しています。2010-03-17ClojureのコードをMaven2でビルドする。mavenそこそこ頑張ってビルドしたので、成果をまとめておきますですだよ。maven-pluginを使ってMavenでClojure+Javaビルドを見てクダサシ。正直にビルドするだけなら、ここに記述されている内容を読めば特に問題ないです。Clojureのソースコードたる.cljファイルを配布物に含めるには。clojure-maven-pluginにおけるClojureのソースコードを配置するデフォルトの推奨ディレクトリは、maven-resources-pluginの管理対象外なので、こんな感じに追記しる。</resources>〜以下省略〜</build>これで、.classが詰まってるjarファイルと、-sources.jarの中に、.cljファイルが含まれるます。ユニットテストを、自分の好きなコンテキストで動かすには。clojure-maven-pluginでは、testフェイズにおいて、clojure.testをブートストラップする為の、特別なスクリプトを自動生成して、そこからテストを動かします。ClojureRunTestMojo.javadeftestの中で、必要なコンテキストを全て揃えて動かしているのであれば、それで特に問題ないのですけど、僕が書いていたテストコードは、ブートストラップコストが少々高めなモノを動かしていたので、出来れば、名前空間単位で生成した上で、束縛したいオブジェクトがあるました。言うわけで、こんな感じの記述をpom.xmlにしる。ポイントは、testScriptって所。普通に使う分には、pom.xmlからの相対パスを書いておけば、特に問題無いのだけど、マルチプロジェクトに対応する為には、前の${basedir}ってのを付けておかないと、プラグインの中で、パスの処理をちゃんとやってくれないので、思いとおりに動かない事になるます。resources-pluginとは、出来が違うって事であります。</plugin>〜以下省略〜</build>ちなみに、test.cljの中はこんな感じ。-1)))))).cljファイルをREPLでロードする分には動くのに、.classファイルを出力しようとすると出る謎のエラー対策まぁ、コードとしても、そこそこ変な事をやっていて、Javaのenumをあるルールに乗っとって、マクロでdefするみたいな。getName))ちなみに、ここで登場するAutoInjectってのは、こんなenumでつ。AutoInject.javaこいつは普通に動かしてる分には特に問題なく動くのだけど、.classファイルを出力するべくコンパイラを起動すると謎のスタックトレースが出力されてコケてしまうのです。clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2775)print-dupなる何かがアレで、ソレ...らしい。分かりませんが、要は、何か直列化したいらしい。言うわけで、こんなコードを足します。処理としては、print-methodなる別なマルチメソッドにディスパッチしているだけ。w))print-dupは、clojure.coreと言う名前空間にに定義されているマルチメソッドなのだけど、具体的なファイルとしては、core_print.cljに入っております。core_print.cljこれで、期待した動作になるのだけど、何故これでOKなのかは、実は良くわかりませぬ。15:46ClojureのコードをMaven2でビルドする。getEnclosingなんちゃら。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事logback.groovyで設定記述しようとしたらアレな事になった件についてGradle-WrapperにHTTPとHTTPSのプロキシを設定して動かす。GitHubにGradleでリリース作業する。同一のGroupIdかつ同一バージョンで複数のArtifactIdを依存ライブラリとして指定する。月別アーカイブはてなブログをはじめよう!taichitaichiさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?はてなブログをはじめる(無料)はてなブログとは設計と実装の狭間で。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。