日々常々

ふつうのプログラマがあたりまえにしたいこと。

MavenSurefirePluginのバージョンのメモ

前置き

プラグインのバージョンとかは上げるタイミングがあれば最新にする私ですが、設定によっては動かなくなったりして、一気に上げるのは厳しいこともあります。でもどこまで下げたらいいかわからなくて、やりたいことができるギリギリでお茶を濁すなんてのもよく見ます。細々としたバグフィックスとかも入ってるし、上げられるだけ上げた方がいいとは思うんだけど、そうも言っていられない現実もあります。

バージョンを上げなきゃと思った以上は、何かしら問題があった、もしくはやりたいことがあるんだと思う。てことでそのメモ。

てか個人的にはもうMaven使わないんだけどね。。。

各バージョンごとのメモ

surefire-plugin自体の機能にはあまり興味ない感じです。実行対象がそれなりに選べて、レポートがそれなりに出てくれれば十分。

2.9

Maven 3.0.5 のデフォルトバージョン。Mavenの3.0系の安定版を使って特になんてしてなかったらこれになる。これより下げることはないと思ってる。

2.11

なんかよく使われてる感じのするバージョン。なぜかは知らない。

2.12.1

昔の自分のエントリによると、JUnitProviderが変更されたバージョン。JUnitのCategoryを使用する場合の記述が簡略化できるようになっているので、Category使うならこれ以降で。

2.12.3

日本語テストメソッド名を使用したテストレポートなどがユニコードエスケープされて出てきちゃう問題が解消された。日本語テストメソッダー(このエントリのみの独自用語)には重要なバージョン。

2.12.4

現時点の最新である Maven 3.3.3 で使用されるデフォルトバージョン。特に気にしてなかったらこれになるか? 2.12系の最終でもあるし、2.12.xを使うならここまで上げても問題にはならないと思ってるので、2.12.1とかで中途半端に止める理由はないでしょね。

2.13近辺

なんかパラレル周りの対応が目立つのがこの辺。

2.14.1

2.14でうっかりFileWriterとか使ちゃったせいで、TEST-*.xmlがシステムのエンコード使うようになっちゃってたのが直ったりしてます。出たばっかりの2.14を使ってリアルタイムに踏んだのはいい思い出。とりあえず、2.14系で止めるなら2.14.1にしたほうが良いです。

2.15

Java SE 1.4 以前を切り捨てたバージョン。そちらの方々はこれ以降は使えません。

2.17

Java SE 8 の対応が入り始めた頃。

まとめ

とりあえず最新使って、なんか詰まったらISSUE上げるとか騒ぐとかしましょう。(そんなこと書いてない) あ、このブログ書いてる時点の最新は2.18.1です。

WeldとJava SEとGradleとIDEAと

Weldを使ってみようと思いました。普段DIはSpring一本槍なのですが、それもどうかと思ったので。

opengl-8080さんやKazuhiraさんのようないつもの方々が既にやられていることだし、すぐできるだろうと思ってました。

qiita.com d.hatena.ne.jp

やるまでは。甘かったです。すぐできなかった。でも、あーだこーだとやってたら一応解決したので書いておきます。

結論からいうと、*.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みたけど、真面目でもなかった。棲み分け……。

jBatchをgradle使ってSE環境で動かしてみる

しおしおさんの書いたブログを見て、jBatch触ってみるかーという気になりました。

適当に書いてデプロイしたら動くとは思うんですが、EEサーバーどれにしようかとか面倒になったので、もうSEでやろうとなったわけです。 でまぁclasspathにjar突っ込むとかは面倒なので、gradleで出来んだろと。

てことで軽くやってみた。

たぶんミニマム構成。Batchletです。とりあえず動く感じ。 javax.inject入れてないのでフィールド書いた瞬間落ちたりするけど、この辺はおいおい見ていこうと思います。