小编Mar*_*ann的帖子

在Maven插件中调用MavenCli失败

我已经创建了一个小的util包装MavenCli,使用quickstart原型生成了一个新的Maven项目。

当执行Util单元测试时,它运行良好(只是生成一个空的Maven项目)。

现在,我想将此小包装程序集成到Maven插件中。但是,当我执行mojo(在第三个Maven项目中)时,调用MavenCli失败,但出现以下异常:

[ERROR] Error executing Maven.
[ERROR] java.util.NoSuchElementException
  role: org.apache.maven.eventspy.internal.EventSpyDispatcher
  roleHint: 
[ERROR] Caused by: null
Run Code Online (Sandbox Code Playgroud)

该实用程序如下所示:

public void createProject() {
    final MavenCli cli = new MavenCli();
    System.setProperty("maven.multiModuleProjectDirectory", "/usr/share/maven");
    cli.doMain(new String[] { "archetype:generate", "-DgroupId=com.my.company",
            "-DartifactId=hello-world", "-DarchetypeArtifactId=maven-archetype-quickstart",
            "-DinteractiveMode=false" }, "/tmp", System.out, System.out);
}
Run Code Online (Sandbox Code Playgroud)

util的相关依赖项:

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-embedder</artifactId>
    <version>3.3.9</version>
</dependency>
<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-core</artifactId>
    <version>3.3.9</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

mojo代码如下所示:

@Mojo(name = "custommojo", requiresProject = false)
public class CustomMojo extends AbstractMojo {

    @Override
    public void execute() throws MojoExecutionException, MojoFailureException { …
Run Code Online (Sandbox Code Playgroud)

java maven-plugin maven maven-embedder

2
推荐指数
1
解决办法
438
查看次数

标签 统计

java ×1

maven ×1

maven-embedder ×1

maven-plugin ×1