通过调用Maven插件mojo

时间:2016-10-25 16:39:19

标签: maven maven-plugin maven-dependency

我有多个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);
        }
    }

有可能这样做吗?如果有,怎么样?

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

0 个答案:

没有答案