N2 ToolBox(跡地)

跡地です。引っ越しました。http://d.hatena.ne.jp/nosen

mavenでAspectJを使う

2004-06-29 00:54:27 | 開発手法/方法論
そもそもAspectJでDesign by ContractをやるためにMaven AspectJ Pluginを使おうとしたのですが、これがなかなか動いてくれなくて。。。結局はしょうもないことではまっていたのですが。というわけで、MavenでAspectJを使うためのメモです。
なお、Mavenのバージョンは1.0rc3を前提とします。

1. Maven AspectJ Pluginをバージョンアップする。
以下のコマンドを実行します。
maven plugin:download -DgroupId=maven -DartifactId=maven-aspectj-plugin -Dversion=3.1

なにしろドキュメントも全部バージョン3.1ベースですし、これをやらないと始まりません。

2. project.xmlの編集
dependencyにaspectjrt-1.2.jarを追加し、build要素の子要素としてaspectSourceDirectoryを追加します。
こんな感じになります。

3.maven.xmlの作成。
今回はテストケースに対してWeavingを行いたかったのですが、そのような場合はtest:compileのpreGoalとしてaspectj:test-compileを設定します。
本体のソースコードにWeavingをかけたい時はjava:compileのpreGoalとしてaspectj:compileを設定します。こんな感じになります。

これで、あとはチェック対象クラスのメソッド呼び出しの前後に事前条件/事後条件/不変表明のチェックを行うアスペクトを書いて、

maven test

を実行すると、JUnitのテストケースにWeavingされてうまいことチェックがかかります。本体でなくテストケースにWeavingするところがミソです。この方がテスト対象をいじくり倒すよりも安心ですし、特別なことをしなくてもmavenのjar goalで作成されるjarには当然チェック抜きのコードがはいりますから。
ただ、複雑な場合でもテスト対象をいじらないで済むかどうかは非常に疑問です。。。

明日は、実際にDbCをAspectJで実現したサンプルコードを紹介したいと思います。

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy