繁体   English   中英

在插件中使用Maven版本

[英]Using maven version in plugin

我正在为Maven编写插件。 我想根据Maven版本(使用我的插件的人)来自定义操作,例如:

if (MavenVer == "2.2.1") 
    //do some things
if (MavenVer == "3.0")
//do another things

我发现了build-helper-maven-plugin,但是我不知道如何使用它来完成这项工作。

您需要将Maven参考注入plugina并只需使用API http://maven.apache.org/ref/2.2.1/maven-project/apidocs/org/apache/maven/project/MavenProject.html#getVersion ( )

http://maven.apache.org/ref/3.0.3/maven-core/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源代码时,它有点复杂,涉及通过plexus(Maven使用的IoC容器)获取RuntimeInformation实例的句柄。

我建议您看一下maven-enforcer-plugin ,看看您是否可以使用它们的功能。 请特别注意RequireMavenVersion和EnforcerMojo类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM