2

我有多个 POM 通过其父级继承依赖项。依赖项不是 maven 插件,而是我创建的另一个项目:

        <dependency>
            <groupId>com.my.name.group</groupId>
            <artifactId>id-of-my-artifact</artifactId>
            <version>2.3.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>

现在我想从父 POM 文件中删除它,而是让子 ​​POM 使用自定义 maven 插件来实现相同的功能。在那个自定义的 maven 插件(我将创建)中,我想调用/添加上面的依赖项。我在新的 maven-plugin 的 Mojo 中尝试了以下代码,但它没有添加依赖项(并给出编译错误):

    private MavenProject project;

    public void execute() throws MojoExecutionException, MojoFailureException {
        try {

            // adding a dependency
            Dependency dep = new Dependency();
            dep.setArtifactId("id-of-my-artifact");
            dep.setGroupId("com.my.name.group");
            dep.setScope("compile");
            dep.setVersion("2.3.0-SNAPSHOT");

            List<Dependency> lst = new ArrayList<Dependency>();
            lst.add(dep);
            project.setDependencies(lst);

        } catch (Exception ex) {
            getLog().info(String.format("Exception %s: ", ex));
            throw new MojoExecutionException("Exception has occurred" + ex);
        }
    }

是否有可能做到这一点?如果是,如何?

我查看了这个相关问题以及其中提供的链接。从外部链接来看,似乎是不可能的。但是在那个问题中,OP似乎已经弄清楚并提供了一个简短的答案,但我无法理解答案。有人可以帮我吗?我是Maven的新手。

4

0 回答 0