在 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' 上运行 mvn dependency:copy-dependencies 时,我看到 200 多个依赖项复制到目标文件夹。
最终,我想要做的是,在扩展类中获取一个项目的所有依赖项并将其复制到一个文件夹中。
有什么我做错了吗?请注意,我对这一切都不熟悉。任何帮助是极大的赞赏。