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