为了轻松运行我的 web 应用程序,我决定将 Jetty 添加到我的单个 POM 文件中。
按照官方文档,我将其添加到我的
<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
注意:有几个关于同一主题的问题,所有问题都有过时的答案,其中包含可追溯到 Jetty 迁移到 Eclipse 之前的 Maven id(mortbay、codehaus),或者建议添加在我的问题顶部看到的
<plugin>
块。
您正在使用插件版本
9.4.0-SNAPSHOT
。该版本在中央存储库中不可用(可用版本)。
添加
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>
这对我有用。
<pluginGroups>
<pluginGroup>org.eclipse.jetty</pluginGroup>
</pluginGroups>
这就是我多次解决此类问题的方法: