gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:19:29 26 4
gpt4 key购买 nike

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

我试过使用 Add maven-build-classpath to plugin execution classpath 中提到的方法,但似乎maven找不到书面组件。 (我有一个 ComponentNotFoundException 在插件执行开始时)。

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

最佳答案

您可以在 MavenProject 上检索类路径元素通过调用:

  • getCompileClasspathElements() 检索编译范围依赖
  • 形成的类路径
  • getRuntimeClasspathElements() 检索由运行时范围的依赖关系形成的类路径(即编译 + 运行时)
  • getTestClasspathElements() 检索由测试范围依赖形成的类路径(即编译 + 系统 + 提供 + 运行时 + 测试)

  • MOJO 示例将是:

    @Mojo(name = "foo", requiresDependencyResolution = ResolutionScope.TEST)
    public class MyMojo extends AbstractMojo {

    @Parameter(defaultValue = "${project}", readonly = true, required = true)
    private MavenProject project;

    public void execute() throws MojoExecutionException, MojoFailureException {
    try {
    getLog().info(project.getCompileClasspathElements().toString());
    getLog().info(project.getRuntimeClasspathElements().toString());
    getLog().info(project.getTestClasspathElements().toString());
    } catch (DependencyResolutionRequiredException e) {
    throw new MojoExecutionException("Error while determining the classpath elements", e);
    }
    }

    }

    是什么让这项工作:
  • MavenProject注入(inject) @Parameter使用 ${project} 进行注释房产
  • requiresDependencyResolution将使插件能够访问具有上述解析范围的项目的依赖项。
  • 关于maven - 使用maven 3,如何在插件中使用项目类路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35829762/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com