現在、Mavenを使用するJavaプロジェクトのクリーンアップを行い、NetBeans IDEを使用してPOMの問題をデバッグします。私はMaven 3.0.4をMaven版としてIDEに設定しましたが、他の開発者やContinuous Intgerationシステムでは異なる設定が可能です。Maven 3以降が必要かどうかをMaven POMで指定できますか?
特定のMavenバージョンをPOMに直接適用することは可能ですか(Maven 3固有の要素を使用するなど)?
現在、Mavenを使用するJavaプロジェクトのクリーンアップを行い、NetBeans IDEを使用してPOMの問題をデバッグします。私はMaven 3.0.4をMaven版としてIDEに設定しましたが、他の開発者やContinuous Intgerationシステムでは異なる設定が可能です。Maven 3以降が必要かどうかをMaven POMで指定できますか?
特定のMavenバージョンをPOMに直接適用することは可能ですか(Maven 3固有の要素を使用するなど)?
はい、できます。一部のMavenプラグインには、Maven 3以降が必要です。
は、あなたのpom.xml
に以下を追加することによって、のmaven-執行-プラグインを使用します。
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>enforce-maven-3</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.0.5</version>
</requireMavenVersion>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
あなたができる最善のことは、Enforcerプラグインを使用することです。ここに例があります:
http://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html
これを行うためには、Maven自体には既定の方法はありません。実際にはprerequisites
というタグがありますが、子供がそれを継承しないためうまく動作しません。
別のオプションは、例えば、POMに前提条件要素を使用することです:
<project>
...
<prerequisites>
<maven>3.0.0</maven>
</prerequisites>
...
</project>
としてはMichal Kalinowski's answerを指摘 - この単純なアプローチは、子どもたちのプロジェクトのためにとてもうまく動作しません。 enforcing maven 3 - when to use maven enforcer plugin? when to use pom prerequisites element?
は、彼らが死ぬと、関連するスニペットを含む別の答えがすでにあった注意できるようリンクを含むに注意して:アプローチの概要について
はここを参照してください、あなたのための最適な動作をします。 – Barett