Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在插件中使用maven版本_Java_Maven_Maven 2_Maven Plugin_Maven 3 - Fatal编程技术网

Java 在插件中使用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

我正在为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 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。我想知道哪一个用于将我的插件附加到“真实(非插件)”项目:)