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

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

以前の記事 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」ファイルを書くと解決するかと・・・

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

mvn clean install

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值