ドキュメントが不十分なMavenプロジェクトに取り組み始めています。プロジェクトのプロファイルを設定しましたが、リソースのフィルタリング中に使用されたプロパティ定義が不足している場合とそうでない場合があります。デフォルトでは、フィルタリングされたファイルでプロパティが定義されていない場合、変数名はコピーされたリソースに残され、Maven はサイレントに続行します。
この場合、Maven を高速で失敗させる方法はありますか?
最小限の例として、この pom を取り上げます。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>production</id>
<properties>
<foo>Craig</foo>
</properties>
</profile>
</profiles>
</project>
そして、フィルタリングするリソースを用意します:
echo 'Hello, my name is ${foo}!' > src/main/resources/test
次に、実行mvn clean install -Pproduction
すると、というファイルが生成されますが、Hello, my name is Craig!
実行するとmvn clean install
、というファイルが生成されますHello, my name is ${foo}!
。
私の質問は次のとおりです。2番目のケースでMavenを強制的に失敗させるにはどうすればよいですか?