倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

Aspectj -- 必要最小限の設定とフォルダ構造

「プロジェクト管理ツール」Maven2 で、AspectJ を使用するプロジェクトを扱う方法を見ていきましょう。

POM ファイルに行う変更は

  • aspectjrt への依存性を付加する
  • コンパイル時に weaving*1 を行うようにする

です。 また、ソース・コードの配置フォルダにも後で少し言及しておきましょう。

aspectjrt への依存性を付加する


まず aspectjrt への依存性を追加しましょう。 これは通常の依存性の追加方法と同じです。 設定するパラメータは次の通り:

groupId aspectj
artifactId aspectjrt
version 1.5.0

POM ファイルでは「/project/dependencies/dependency」要素で設定を行います:

<project>
  ...
  <dependencies>
    ...
    <dependency>
      <groupId>aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>1.5.0</version>
    </dependency>
  </dependencies>
</project>

コンパイル時に weaving を行うようにする


次に、コンパイル時に weaving を行うように設定しましょう。 この設定は「project/build/plugins/plugin」要素で行います。 大切な設定は <execution> 要素です:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>aspectj-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>test-compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

ソース・コードを配置するフォルダ


Aspect のソース・コードを配置するフォルダは、デフォルトで「src/main/aspect」フォルダ下だそうですが、通常の Java コードと同じ「src/main/java」フォルダ下でも良いようです。

テスト時に使用する Aspect のコードは、デフォルトで「src/test/aspect」に置くことになっているようですが、チョット試してみたところ、うまくいきませんでした。 「src/test/java」も然り。 デフォルトでは、「src/test/aspect」フォルダ下のアスペクトは「src/main/java」フォルダ下のクラスには織り込まれない模様。

これらはコンフィギュレーション・ファイルによって設定することも可能です。 またそのうちに。

*1:クラスファイルにアスペクトで指定されたコードを「織り込む」作業。