AspectJ プロジェクトの POM ファイルへの修正

来源:互联网 发布:c语言if函数里面的= 编辑:程序博客网 时间:2024/06/16 18:59

AspectJ プロジェクトの POM ファイルへの修正

AspectJ

以前の記事で AspectJ プロジェクトの POM ファイル(の雛形)を書きましたが、少々不具合(っぽいもの)があったのでご報告。

問題


aspectj プラグインの設定をしている箇所(/project/build/plugins/plugin)が

<project>  ...  <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></project>

となってましたが、この設定だと、プロジェクトをビルドする際、織り込みが2度(main コードのコンパイル時と test コードのコンパイル時)行われてしまうようです*1。

解決策


大抵の場合、「test-compile」ゴールを実行しないようにすれば解決すると思います:

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

この方法が適用できないのは、Maven2 の「test フェーズ」で行うテストにアスペクトが含まれている場合です。 この場合は、main コード用、test コード用の「.ajproperties」ファイルを書くと解決するかと・・・→

Eclipse のAspectJ プロジェクトで開発する場合について。 Eclipse 上ではテスト・コード内(「src/test/java」フォルダ下)のアスペクトもメイン・コード内(「src/main/java」フォルダ下)のクラスに織り込まれるので、テストはEclipse 上でのみ行い、Maven2 のビルド・プロセスではテストをスキップ(→)しておくと良いかと。 ただし、Maven2 のビルド・プロセスでは「clean」をするのを忘れずに。 例えば成果物をローカル・リポジトリにインストールする場合は以下のようにします:

mvn clean install

原创粉丝点击