Maven へのプラグインを作成しています。Maven のバージョン (私のプラグインを使用する人) に応じてアクションをカスタマイズしたい:
if (MavenVer == "2.2.1")
//do some things
if (MavenVer == "3.0")
//do another things
build-helper-maven-plugin を見つけましたが、それを使用してこの仕事を行う方法がわかりません。
Maven へのプラグインを作成しています。Maven のバージョン (私のプラグインを使用する人) に応じてアクションをカスタマイズしたい:
if (MavenVer == "2.2.1")
//do some things
if (MavenVer == "3.0")
//do another things
build-helper-maven-plugin を見つけましたが、それを使用してこの仕事を行う方法がわかりません。
maven 参照をプラグインに挿入し、API http://maven.apache.org/ref/2.2.1/maven-project/apidocs/org/apache/maven/project/MavenProject.html#getVersion ( )
注射用コード
public class MyMojo extends AbstractMojo {
/**
* @component
*/
ArtifactFactory factory;
/**
* @component
*/
ArtifactResolver artifactResolver;
/**
* @parameter default-value="${project.remoteArtifactRepositories}"
*/
List remoteRepositories;
/**
* @parameter default-value="${localRepository}"
*/
ArtifactRepository localRepository;
/**
* @parameter default-value="${project}"
*/
MavenProject mavenProject;
私はあなたの質問に対する答えを探していましたが、maven バージョンを入手する簡単な方法がないか、少なくとも見つけられなかったという結論に達しました。私が見つけることができた最高のものは、maven-enforcer-plugin に maven バージョンを検索するコードが含まれていることです。ただし、maven-enforcer-plugin ソース コードを見ると、少し複雑であり、神経叢 (Maven によって使用される IoC コンテナー) を介して RuntimeInformation インスタンスへのハンドルを取得する必要があります。
maven-enforcer-pluginを見て、彼らが行ったことを使用できるかどうかを確認することをお勧めします。RequireMavenVersion および EnforcerMojo クラスに特に注意してください。