質問
ソースコードにキーワード/正規表現が含まれている場合、maven ビルドを失敗させる方法は?
ボーナス
- チェックするパスを指定できる
チェックする「種類」のパスを指定できます。「KEYWORD が「メイン」リソースに含まれていないことを確認したい。「テスト」は気にしない」「KEYWORD が 'test' リソースに含まれていないことを確認したい。'main' は気にしない」- ...
- テストを実行するフェーズを指定できる (例: コンパイル前)
解決
(現在の回答 2013-09-26 に基づく)
最良の解決策は、Mavenと完全に統合され、プラットフォームに依存しない@BaptisteMathusの回答であるようです。
私のユースケースでは、@ GregWhitakerの回答は良いものです。プラットフォームの独立性を気にしないため、実装する方が安価だからです(<=必要なコマンドはすべてのホストで利用可能です)。以下のコード サンプルは、この回答に基づくソリューションです。「FIXME」または「自動生成されたメソッド スタブ」の使用を禁止していますが、利用可能であると想定していegrep
ます。
「SONAR対応」プロジェクトでよりクリーンな@MarkOConnorの回答も参照してください
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>process-sources</phase>
<configuration>
<executable>egrep</executable>
<successCodes>
<successCode>1</successCode>
</successCodes>
<arguments>
<argument>-rqm</argument>
<argument>1</argument>
<!-- Forbidden Keywords -->
<argument>FIXME|Auto-generated method stub</argument>
<!-- search path -->
<argument>src/main</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>