在Maven 3.x中,如何获取项目的所有依赖关系,包括自定义maven扩展中的传递对象(通过不使用Aether)
目前我有这个:
@Component(role = AbstractMavenLifecycleParticipant.class, hint = "Test")
public class sampleExtension extends AbstractMavenLifecycleParticipant implements LogEnabled {
private Logger logger;
@Override
public void afterSessionStart(MavenSession session)
throws MavenExecutionException {
this.logger.info("Starting afterSessionStart()");
}
@Override
public void afterProjectsRead(MavenSession session)
throws MavenExecutionException {
MavenProject pr = session.getCurrentProject();
List dependencies = pr.getDependencies();
this.logger.info("Project name and Size of dependencies: " + pr.getArtifactId() + " : " + dependencies.size());
}
@Override
public void enableLogging(Logger logger) {
this.logger = logger;
}
}
我正在构建此扩展jar,并将其放在$ Maven_home / lib / ext中。我选择了一个随机的Maven项目(将其称为“ abc”)并运行了命令:mvn clean install,从日志中将依赖项的数量显示为13。好像我在'abc'上运行mvndependency:copy-dependencies一样,我看到复制到目标文件夹的依赖项超过200个。
最终,我要做的是获取扩展类中项目的所有依赖项,并将其复制到文件夹中。
我在做错什么吗? 请注意,我是这一切的新手。任何帮助将不胜感激。
答案 0 :(得分:0)
@Mojo(name = "xxx", defaultPhase = LifecyclePhase.xxx, requiresDependencyCollection = ResolutionScope.COMPILE_PLUS_RUNTIME, requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME)