WeldとJava SEとGradleとIDEAと
Weldを使ってみようと思いました。普段DIはSpring一本槍なのですが、それもどうかと思ったので。
opengl-8080さんやKazuhiraさんのようないつもの方々が既にやられていることだし、すぐできるだろうと思ってました。
やるまでは。甘かったです。すぐできなかった。でも、あーだこーだとやってたら一応解決したので書いておきます。
結論からいうと、*.class
があるディレクトリにbeans.xml
さんがいる必要があります。Gradleとかでclassesとresourcesとかディレクトリが分かれてると、resourcesにbeans.xml
さんが行っちゃうので、動かない。
気づいてみればよくある話なんだけど、だいたいそんなもんだよね(´・ω・`)
やったこと
- とりあえずドキュメントの通りにやってみる
- なんか動かない
- CDIわかってないせいだと思ってJSR読んでみる
- 特に解決しない
- ざっくりWeldのソース読んでみる
- 特に解決しない
- ログ入れる
- jclの警告は出てたけどdebugも出すよーにした
- build/resources/main しか読んでないことに気づく
- Gradleでコピる
- 動いた
- けどIDEAでrebuildしたら動かなくなる
beans.xml
無しで読むようにWeldいじる- 動きはした
- けどまともな形にはならなかったし、やりすぎ感もある
- やりたいのはCDIを一通り触ってみることであって、Weld本体をいじることではないんですよ!!!←
- てかそのうち本体で対応するだろうし。。。
- 実行時にコピるようにする
- いまここ
ログは偉大だなとおもいました。まる。
まじめなことはGitHubに
ブログに雑なこと書いて、GitHubのREADMEに真面目なことを書くというのはどうだろう。
と思ってREADMEみたけど、真面目でもなかった。棲み分け……。