我有多个 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的新手。