我正在给Maven写一个插件。我想根据Maven版本(使用我的插件的人)自定义动作 类似的东西:
if (MavenVer == "2.2.1")
//do some things
if (MavenVer == "3.0")
//do another things
我发现了build-helper-maven-plugin,但我不知道如何使用它来完成这项工作。
答案 0 :(得分:1)
你需要将maven引用注入plugina并使用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;
答案 1 :(得分:0)
我一直在寻找你的问题的答案,我得出结论,没有简单的方法来获得maven版本,或者至少我找不到它。我能找到的最好的是maven-enforcer-plugin包含查找maven版本的代码。但是,在查看maven-enforcer-plugin源代码时,它有点复杂,需要通过plexus(Maven使用的IoC容器)获取RuntimeInformation实例的句柄。
我建议您查看maven-enforcer-plugin,看看您是否可以使用他们所做的。特别注意RequireMavenVersion和EnforcerMojo类。