#maven #plugins #enunciate
#maven #Плагины #enunciate
Вопрос:
я полностью потерялся после 2 часов попыток найти решение.
Для моего проекта мне нужно enunciate (http://enunciate.codehaus.org /) для создания документации для RESTful api приложения. Использование версии 1.28 maven-enunciate-plugin ранее работало довольно хорошо, но внезапно я столкнулся с NullPointerException в плагине при выполнении цели maven для enunciate (но это исключение — другая история, с которой нужно разобраться ..)
В любом случае, я увидел, что было обновление до 1.29, поэтому я подумал, что попробую.
Обычная конфигурация для использования enunciate в вашем процессе сборки maven в основном такова:
<plugin>
<groupId>org.codehaus.enunciate</groupId>
<artifactId>maven-enunciate-plugin</artifactId>
<version>1.29</version>
<executions>
<execution>
<goals>
<goal>docs</goal>
</goals>
<configuration>
<docsDir>${project.build.directory}/docs</docsDir>
<configFile>enunciate.xml</configFile>
</configuration>
</execution>
</executions>
</plugin>
К сожалению, 1.29, похоже, пока не находится в центральном репозитории maven, но добавляет ручную зависимость и репозиторий, подобный этому:
<repositories>
<repository>
<id>opencast-public</id>
<url>http://repository.opencastproject.org/nexus/content/repositories/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.codehaus.enunciate</groupId>
<artifactId>maven-enunciate-plugin</artifactId>
<version>1.29</version>
<scope>compile</scope>
</dependency>
</dependencies>
на самом деле выдает загрузку 1.29 в мой локальный m2-репозиторий (я вижу все файлы …).
В любом случае, как только я попытаюсь использовать плагин, как указано выше, maven не будет выполняться должным образом, а завершится с:
Не удалось разрешить плагин org.codehaus.enunciate:maven-enunciate-plugin:1.29 или одну из его зависимостей: не удалось прочитать дескриптор артефакта для org.codehaus.enunciate:maven-enunciate-plugin:jar: 1.29: Не удалось найти org.codehaus.enunciate:maven-enunciate-plugin:pom: 1.29 дюйма http://repo.maven.apache.org/maven2 был кэширован в локальном репозитории, разрешение не будет повторно предпринято до тех пор, пока не истечет интервал обновления центра или не будут выполнены принудительные обновления -> [Справка 1]
Почему maven не использует правильно загруженную зависимость??
Любая помощь действительно ценится, поскольку я уже потратил много времени на то, чтобы разобраться с этим.
Комментарии:
1. Их список рассылки довольно активен. Возможно, вы захотите отправить им электронное письмо.
2. Что происходит, когда вы запускаете maven с
-U
опцией?3. Ничего особенного. Независимо от того, определяю ли я зависимость и репозиторий вручную или нет, плагин всегда будет пытаться загрузить версию из maven central, где она недоступна.
Ответ №1:
Просто столкнулся с этим сам. Вам нужно убедиться, что вы добавили репозиторий в блок pluginRepositories вместо блока репозиториев.
<pluginRepositories>
<pluginRepository>
<id>opencast-public</id>
<url>http://repository.opencastproject.org/nexus/content/repositories/public/</url>
</pluginRepository>
</pluginRepositories>
Комментарии:
1. Не работает. Он по-прежнему жалуется на: [ПРЕДУПРЕЖДЕНИЕ] Отсутствует POM для org.codehaus.enunciate:enunciate-rt: jar:1.29, информация о зависимостях недоступна