使用maven 3,如何在插件中使用项目类路径?

使用maven 3,如何在插件中使用项目类路径?,maven,classpath,maven-plugin,Maven,Classpath,Maven Plugin,我正在编写一个maven 3插件,我想使用项目类路径 我尝试过使用中提到的方法,但maven似乎没有找到编写的组件。(在插件执行开始时,我有一个ComponentNotFoundException) 那么,在maven 3插件中使用项目类路径的“参考”方式是什么?或者,如果组件的方式是正确的,那么除了将组件添加为@Mojo注释的configurator属性之外,还有什么配置步骤吗?有时候,看看插件的代码,如果插件的代码做得完全一样,就会更好地解释它。如果有一个插件需要知道类路径,那就是maven

我正在编写一个maven 3插件,我想使用项目类路径

我尝试过使用中提到的方法,但maven似乎没有找到编写的组件。(在插件执行开始时,我有一个
ComponentNotFoundException


那么,在maven 3插件中使用项目类路径的“参考”方式是什么?或者,如果组件的方式是正确的,那么除了将组件添加为
@Mojo
注释的
configurator
属性之外,还有什么配置步骤吗?

有时候,看看插件的代码,如果插件的代码做得完全一样,就会更好地解释它。如果有一个插件需要知道类路径,那就是maven编译器插件()。只需查找
classpathElements

即可通过调用以下命令检索上的类路径元素:

  • 检索由编译范围的依赖项形成的类路径
  • 检索由运行时范围的依赖项(即编译+运行时)形成的类路径
  • 检索由测试范围的依赖项(即编译+系统+提供+运行时+测试)形成的类路径
一个例子是:

@Mojo(name=“foo”,requiresDependencyResolution=ResolutionScope.TEST)
公共类MyMojo扩展了AbstractMojo{
@参数(defaultValue=“${project}”,readonly=true,required=true)
私人马文项目;
public void execute()抛出MojoExecutionException,MojoFailureException{
试一试{
getLog().info(project.getCompileClasspathElements().toString());
getLog().info(project.getRuntimeClasspathElements().toString());
getLog().info(project.getTestClasspathElements().toString());
}捕获(依赖解析要求例外e){
抛出新的MojoExecutionException(“确定类路径元素时出错”,e);
}
}
}
是什么使这项工作起作用的:

  • MavenProject
    使用
    ${project}
    属性注入
    @参数
    注释
  • requiresDependencyResolution
    将允许插件访问具有所述解析范围的项目依赖项

requiresDependencyResolution无效。项目具有zip依赖关系。