2016-08-17 3 views
4

Чтобы легко запустить мой webapp, я решил добавить Jetty в мой единственный файл POM.Плагин не найден для префикса 'jetty' в текущем проекте и в группах плагинов (локальный, центральный)

После official documentation, я добавил это к моему <plugins>:

<plugin> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>9.4.0-SNAPSHOT</version> 
    </plugin> 

ПРОБЛЕМА: mvn jetty:run терпит неудачу:

$ mvn jetty:start 
[INFO] Scanning for projects... 
[WARNING] The POM for org.eclipse.jetty:jetty-maven-plugin:jar:9.4.0-SNAPSHOT is missing, no dependency information available 
[WARNING] Failed to retrieve plugin descriptor for org.eclipse.jetty:jetty-maven-plugin:9.4.0-SNAPSHOT: Plugin org.eclipse.jetty:jetty-maven-plugin:9.4.0-SNAPSHOT or one of its dependencies could not be resolved: Could not find artifact org.eclipse.jetty:jetty-maven-plugin:jar:9.4.0-SNAPSHOT 
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml 
Downloading: https://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml 
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml (13 KB at 2.1 KB/sec) 
Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml (20 KB at 3.2 KB/sec) 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 7.013 s 
[INFO] Finished at: 2016-08-17T16:49:28+09:00 
[INFO] Final Memory: 14M/307M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] No plugin found for prefix 'jetty' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/home/nico/.m2/repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1] 

Другой подход в https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-maven-plugin/9.4.0.M0 предлагает добавить это в <dependencies>:

  <dependency> 
       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.4.0.M0</version> 
      </dependency> 

В нем не слишком, mvn jetty:start говорит:

[ERROR] No plugin found for prefix 'jetty' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/home/nico/.m2/repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1] 

Я удалил свою папку .m2 и пусть Maven не воссоздавать его, не лучше. У меня нет settings.xml в ~/.m2 и здесь содержание ~/.m2/repository/org/eclipse/jetty/jetty-maven-plugin/9.4.0.M0/:

-rw-rw-r-- 1 nico nico 101524 8月 24 17:29 jetty-maven-plugin-9.4.0.M0.jar 
-rw-rw-r-- 1 nico nico  40 8月 24 17:29 jetty-maven-plugin-9.4.0.M0.jar.sha1 
-rw-rw-r-- 1 nico nico 5526 8月 24 17:28 jetty-maven-plugin-9.4.0.M0.pom 
-rw-rw-r-- 1 nico nico  40 8月 24 17:28 jetty-maven-plugin-9.4.0.M0.pom.sha1 
-rw-rw-r-- 1 nico nico 215 8月 24 17:29 _remote.repositories 

Примечание: Есть несколько вопросов по той же теме, все они имеют устаревшие ответы, содержащие Maven идентификаторы (mortbay, Codehaus) датируемые до того Jetty переехал к Eclipse, или предложите добавить блок <plugin> в верхней части моего вопроса.

+0

Ну, в центре Maven у этой банки есть правильный путь, я только что проверил. Я предполагаю, что ваш файл settings.xml не изменился в последнее время, или настройки прокси, и что все ваши другие зависимости загружаются успешно. Как загрузить его вручную и поместить его в локальный репозиторий по правильному пути? Я не хочу слишком быстро обвинять Мавена, но в прошлом у меня были времена, когда это казалось очень непредсказуемым. –

+0

@ThomCunningham: У меня нет файла 'settings.xml', по крайней мере, в' ~/.m2'. У меня никогда не было прокси-сервера, прямое подключение к Интернету. Я собирался следовать вашим советам и загружать вручную, и это заставило меня понять, что на самом деле файлы уже присутствуют, см. Мой отредактированный пост. Большое спасибо! –

ответ

9

Вы используете версию плагина 9.4.0-SNAPSHOT. Эта версия недоступна в центральном репо (available versions).

Чтобы добавить dependency не решит проблему, так как зависимость не совпадает с plugin. Зависимость используется или требуется по коду, который вы хотите скомпилировать, а плагин - это то, что компилирует, строит или анализирует ваш код.

Короче:

  • вам не нужен dependency на jetty-maven-plugin
  • вы должны изменить version в plugin к версии, которая доступна в центральном или локальном репо.
    Например:

    <plugin> 
        <groupId>org.eclipse.jetty</groupId> 
        <artifactId>jetty-maven-plugin</artifactId> 
        <version>9.4.0.M0</version> 
    </plugin> 
    
+0

Действительно, моему приложению не нужно запускать Jetty, и я бы лучше не видел Jetty внутри .war-файла. Большое спасибо, я попробую! –

+0

Это решило проблему, спасибо! –

+0

Спасибо большое, @CptS. Я никогда не пойму, как работает этот «зависимый резольвер». Для меня это редко решает что угодно. Я всегда должен разрешать все зависимости вручную, используя самые странные и более мрачные возможные методы ... PD: после добавления этого и ожидая очередного куча загрузок, Eclipse продолжает жаловаться на «никакого плагина для префикса« причал »... – Pere

Смежные вопросы

 Смежные вопросы