DATE : 2008/04/19 (Sat)
配布用 ZIP ファイルなどのパッケージを構築できる Maven Assembly Plugin を Maven 2.0.9をインストールした後に実行すると、Maven 2.0.8以前とは違ったパッケージができあがってしまいました。
例えば、次のような Assembly Descriptor があったとします。(「...」は省略を表します)
... <dependencySets> <dependencySet> <outputDirectory>/lib</outputDirectory> <outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping> </dependencySet> </dependencySets> ...
この Assembly Descriptor は、プロジェクトが依存するライブラリなどのプロジェクトを、lib ディレクトリに「(アーティファクト名).(拡張子)」というファイル名で格納するという指定をしています。
ところが、この記述のある Assembly Descriptor を Maven 2.0.9 で実行すると、想定とは異なるファイルが lib ディレクトリに格納されていました。例えば、sample-project というアーティファクト名のプロジェクトがあり、commons-logging というプロジェクトに依存している場合、正しく動作すれば lib ディレクトリの直下に commons-logging.jar というファイルが格納されるはずです。ところが、なぜか sample-project.${extension} というファイルができていました。
Maven Assembly Plugin のページを確かめてみると、Mave Assembly Plugin のバージョンアップによって Assembly Descriptor の仕様が変わったようです。特に、上の例で該当する「outputFileNameMapping」要素の説明には、次のように書いてありました。
Sets the mapping pattern for all dependencies included in this assembly. Default is ${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}. (Since 2.2-beta-2; 2.2-beta-1 uses ${artifactId}-${version}${dashClassifier?}.${extension}) The default value is ${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}.
つまり、Maven Assembly Plugin 2.2-beta-1 と Maven Plugin 2.2-beta2 とでは、 outputFileNameMapping の書き方が異なるということです。
Maven 2.0.9 では Maven Assembly Plugin 2.2-beta-2 が採用されています(Maven 2.0.9 の Super POM)。そのため、自動的に Maven Assembly Plugin も 2.2-beta-2 にバージョンアップされます。そのため、Maven Assembly Plugin の動作変更に対して次のいずれかの方法で対処しなければなりません。
- Assembly Descriptor を Maven Assembly Plugin 2.2-beta-2 の仕様にあわせて書き直す。
- POM に Maven Assembly Plugin 2.2-beta-1 を使うようにバージョンを指定する。
(;^ω^)仕様が変わるなら、Maven のリリースノートに書いてほしかったですね。
DATE : 2007/12/23 (Sun)
「高速カードバトル カードヒーロー」(ニンテンドーDS、任天堂、2007年12月20日)が発売されました。「カードヒーロー」というトレーディングカードゲームで遊ぶゲームソフトです。
ずっと待ち続けていました。前作「トレード & バトル カードヒーロー」(ゲームボーイ、任天堂、2000年2月21日)の発売が2000年なので、7年ぶりです。ゲームボーイアドバンスで続編が出かもしれない……と期待しながらもけっきょく出ず、ニンテンドー DS の発売後もしばらく音沙汰が無かったので、あきらめかけていたのですが、ここにきてとつじょ発売されました。
実際にプレイしてみたのですが、ゲームボーイ版とは異なりルールが増えていました。特に序盤から遊べる「スピードバトル」はかなりシンプルなルールで、決着も短時間で付くので楽しいです。
ストーリーを進めないと、フリーバトルやカードの購入、Wi-Fi 対戦ができないのが前作経験者としては難点ですが、ルールをほとんど忘れかけていたので、ほとんどチュートリアルなストーリーモードはかなり助かりました。しかも、詰め将棋のような形で戦法を紹介してくれるので、勘を取り戻すには最適でした。
そういえば、前作を購入した2000年にはもうひとつ、「モンスタータクティクス」(ゲームボーイ、任天堂、2000年11月21日)というゲームソフトがありました。これもカードヒーロー同様、高度な戦略性と面白さ、それでいてあまり売れなかったゲームなので、こちらの方もそろそろ新作を出してほしいところです。
(´Д⊂ヽもっとも、カードヒーローとは異なり、モンスタータクティクスには2007年12月23日現在で Wikipedia に項目がないほどマイナーなので、望みはカードヒーローよりも薄そうですが……。
DATE : 2007/11/25 (Sun)
「Wii ザッパー」を手に入れました。すでに「ゴースト・スカッド」や「バイオハザード アンブレラ・クロニクルズ」を Wii リモコンで遊んでいたのですが、臨場感を求めて購入することにしました。
(;^ω^)Wii ザッパーは店頭では売っておらず、「任天堂オンライン販売」でしか手に入りません。
上記2作は Wii ザッパー対応ソフトですが、対応、非対応に関わらず、Wii ザッパーを使おうと思えばどのようなソフトでも使えます。というのも、Wii ザッパーは単純に Wii リモコンやヌンチャクを銃の形に固定するための型でしかないので、ソフト側が Wii ザッパーの使用を認識できないからです。そのため、Wii ザッパー対応ソフトでは、キーコンフィグで Wii ザッパーを使用する設定に変更する必要があります。
しかし、Wii ザッパーを使用すると照準が非常に安定します。Wii リモコンの場合は照準がどうしてもふらつくので、狙いを定めるのがうまくいかなかったりしたのですが、Wii ザッパーでは思い通りの場所に照準が行きます。しかも、安定感があるため、素早く移動できます。
(;^ω^)特に「ゴースト・スカッド」の場合は、両手で Wii ザッパーを持つので、安定感が桁外れです。もっとも、Wii リモコンでは簡単だった画面へリモコンを向けての弾薬補充は、Wii ザッパーでは安定しすぎてし忘れることも多々ありますが。
Wii とガンシューティングはかなり相性がいいので、今後も Wii ザッパー対応ソフトに期待ですね。
DATE : 2007/10/22 (Mon)
「DS 文学全集」(任天堂)を購入しました。著作権の切れた名作が100本収録された電子ブックソフトです。作品のデータのほとんどは青空文庫のものが基になっているようです。
青空文庫はむかし使っていたことがあったのですが、PC 上で長文のテキストデータを読むというのは私にとって結構苦痛で、3、4作読んだところでまったく足を運ばなくなってしまいました。それでも、いつか青空文庫の本が読めないかと思って、テキストデータの表示できる携帯端末を探してみたりしていたのですが、ここにきて望みどおりのものが出てきました。
縦書き表示で、フォントも綺麗です。ただ、文庫本と比べると画面サイズが小さいので、ページをめくるのはどうしても頻繁になります。しかし、画面の隅を軽くタッチするだけで次のページに進みますし、紙のめくれる動きも再現されているので、あまり違和感は感じませんでした。
とくに便利と感じたのは「あらすじ」機能です。作品の内容を簡潔にまとめた文章が読めます。本来は、時間がないときやじっくり読む作品を選ぶ際に利用する機能だと思うのですが、私はもっぱら作品本文を読んだ後に使います。昔の作品が多いので、言い回しが古かったり漢字が難しかったりと、意味の汲み取れないところがところどころに出てくることがあります。しかし、あらすじは現代文で書かれているので、意味の汲み取れなかったところも改めてチェックできるというわけです。
(;^ω^)今秋は名作を読みふけることになりそうです。
(;´Д`)もっとも、これで一気に100冊の積読ができた……とも言えますが。
DATE : 2007/09/26 (Wed)
RubyGemsで管理されるライブラリを使ったコードを実行する際には、RubyGems 環境の使用をコード中に宣言するか、明示的に ruby インタプリタに伝える必要があります。
(;^ω^)設定を怠ったために、数時間も悩むはめになってしまいました。
RubyGems 環境を使用するには、以下の方法があります。
- コードに明記
require 文で RubyGems 環境の使用を宣言します。
require 'rubygems' # 以下に RubyGems で管理されるライブラリの require 文
- -rubygems オプションの指定
ruby インタプリタに -rubygems オプションを指定します。
ruby -rubygems
- RUBYOPT 環境変数に rubygems を設定する
この方法では、ruby インタプリタが起動するたびに RubyGems を読み込むことになります。
(;^ω^)RubyGems で管理されないライブラリから管理されるライブラリを呼び出す際のミスだったので、このことが分かるにはかなり時間がかかってしまいました。
( ^ω^)なので、とりあえず RUBYOPT 環境変数に rubygems を設定しておきました。