Maven3: Как получить все зависимости проекта в пользовательском расширении Maven
В 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 из журналов. Где, как будто я запускаю mvn dependency:copy-dependencies в 'abc', я вижу более 200 зависимостей, скопированных в целевую папку.
В конечном итоге я хочу получить все зависимости проекта в классе расширений и скопировать его в папку.
Что-то я делаю не так? Обратите внимание, что я новичок во всем этом. Любая помощь с благодарностью.
1 ответ
@Mojo(name = "xxx", defaultPhase = LifecyclePhase.xxx, requiresDependencyCollection = ResolutionScope.COMPILE_PLUS_RUNTIME, requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME)