Java 在插件中使用maven版本
我正在为Maven编写一个插件。我想根据Maven版本(使用我的插件的人)定制操作 比如:Java 在插件中使用maven版本,java,maven,maven-2,maven-plugin,maven-3,Java,Maven,Maven 2,Maven Plugin,Maven 3,我正在为Maven编写一个插件。我想根据Maven版本(使用我的插件的人)定制操作 比如: if (MavenVer == "2.2.1") //do some things if (MavenVer == "3.0") //do another things 我发现了build helper maven插件,但我不知道舒尔如何使用它来完成这项工作 您需要将maven引用注入plugina,并使用API检查版本 () () 注射代码 public class MyMojo exten
if (MavenVer == "2.2.1")
//do some things
if (MavenVer == "3.0")
//do another things
我发现了build helper maven插件,但我不知道舒尔如何使用它来完成这项工作 您需要将maven引用注入plugina,并使用API检查版本 () () 注射代码
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插件包含查找maven版本的代码。然而,在查看maven enforcer插件源代码时,它有点复杂,需要通过plexus(maven使用的IoC容器)获取RuntimeInformation实例的句柄
我建议您查看一下,看看是否可以使用他们所做的。请特别注意RequireMavenVersion和EnforcerMojo类。您能详细说明Maven版本的不同操作吗?我使用的外部插件对mvn2和mvn3具有不同的API。所以我需要在runtmie.getVersion上识别它,您上面提到的runtmie.getVersion为我提供了插件的版本:1.0-SNAPSHOT。我需要知道Maven的版本,它运行我的插件。插件的版本是什么,project的版本是什么?我想问题在于当前版本的pluging1.0-SNAPSHOT,只要你只将pluging附加到你的plugin项目中,我就会得到1.0-SNAPSHOT。我假设一旦你的插件连接到“真实(非插件)”项目,你就会得到实际项目的版本。对不起,这不是我的意思。让我解释一下:当你进入“下载”部分,你可以看到有三个可用的版本。Maven 3.0.4、Maven 2.2.1和Maven 2.0.11。我想知道哪一个用于将我的插件附加到“真实(非插件)”项目:)