5

ドキュメントが不十分な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を強制的に失敗させるにはどうすればよいですか?

4

2 に答える 2

5

The Codehause データベースのこの機能には、JIRA の問題が存在します。

  • MRESOURCES-163フィルタリング: 置換されていないプレースホルダーがあるかどうかを確認する
  • MRESOURCES-162リソースが完全にフィルタリングされていない場合、ビルドに失敗する

ログインして投票できます。残念ながら、この重要なセーフティ ネット機能の需要は低いようです... 奇妙です。

于 2014-11-21T07:24:27.393 に答える
2

もちろん、Apache Maven Enforcer プラグイン、特にRequirePropertyルールはあなたの味方です。

于 2013-07-18T20:20:48.160 に答える