Ошибка внедрения DefaultRepositorySystem в maven-plugin-testing-harness

Я пытаюсь создать новый плагин maven (3.0.3) на основе существующего плагина (2.0) и облегчить использование эфира для получения некоторых зависимостей.

Я попытался создать простой тест для загрузки моджо с помощью maven-plugin-testing-harness (версия 2.0.1), но lookupMojo не работает с исключением guice:

1) Error injecting: org.sonatype.aether.impl.internal.DefaultRepositorySystem
at ClassRealm[plexus.core, parent: null]
at ClassRealm[plexus.core, parent: null]
while locating org.sonatype.aether.RepositorySystem
while locating org.codehaus.griffon.maven.plugin.MvnValidateMojo
at ClassRealm[plexus.core, parent: null]
while locating org.apache.maven.plugin.Mojo annotated with @com.google.inject.name.Named(value=org.codehaus.griffon:griffon-maven-plugin:1.3.0-SNAPSHOT:validate)

Это, конечно, потому, что в какой-то момент мне нужно сослаться на систему репозитория, но не сейчас:

@Component
private RepositorySystem repoSystem;

Я пробовал (фактически начал с) версию 2.1, но столкнулся с проблемой в методе AbstractMojoTestCase#setUp().

org.codehaus.plexus.component.repository.exception.ComponentLookupException: java.util.NoSuchElementException
  role: org.apache.maven.repository.RepositorySystem
roleHint:
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:247)

В любом случае, не уверен, что мне нужно включить и где провести нагрузочный тест vanilla mojo, похожий на поваренную книгу. У кого-нибудь есть идеи?


person Niels Bech Nielsen    schedule 18.02.2013    source источник
comment
У меня такая же проблема! Я использую аннотации maven-plugin-tools. Удалось ли вам найти решение для этого?   -  person Bruno Santos    schedule 27.02.2013
comment
Нет, не сейчас. Я пока отложил неизбежное, но...   -  person Niels Bech Nielsen    schedule 06.03.2013
comment
К вашему сведению, для этого была зарегистрирована ошибка: jira.codehaus.org/browse/MPLUGINTESTING-25< /а>   -  person Noremac    schedule 02.05.2013


Ответы (1)


7 лет спустя, и я столкнулся с той же проблемой.

Решение состоит в том, чтобы также добавить артефакт maven-compat в качестве теста. ограниченная зависимость как maven-plugin-testing-harness по-видимому, все еще полагается на старый API Maven 2.

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-compat</artifactId>
    <version>[REQUIRED_MAVEN_VERSION_HERE]</version>
    <scope>test</scope>
</dependency>

Престижность пользователю smoke за его ответ здесь https://stackoverflow.com/a/16707144/5116073

person Seb T    schedule 07.02.2021