maven - 你如何使用 Maven 设置 jetty-start?

我试图让 Maven 自动下载 jetty-start 的所有依赖项,所以我运行这个:

java start.jar etc/jetty.xml

但是当我这样做的时候:

java start.jar --list-options

我得到了几个缺失的模块,我必须将它们作为依赖项手动添加到我的 Maven 文件中。我已经尝试添加它们,但我仍然无法找到合适的 servlet-api 版本,它会提供 javax.servlet.http.HttpServletResponse,即使下载了 jar因为 jetty-servlet 里面有 javax/servlet/http/HttpServletResponse.class。这是错误:

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:457)
        at org.eclipse.jetty.start.Main.start(Main.java:602)
        at org.eclipse.jetty.start.Main.main(Main.java:82)
Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletResponse
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
        at java.lang.Class.getConstructor0(Class.java:2699)
        at java.lang.Class.newInstance0(Class.java:326)
        at java.lang.Class.newInstance(Class.java:308)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:333)
        at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:291)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1203)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1138)
        ... 7 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletResponse
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        ... 17 more

我已经尝试将 org.eclipse.jetty.aggregate:jetty-all 包添加到我的依赖列表中,但是其中的包没有被 java start.jar 检测到 - -list-options,因此不起作用。

有几页文档很有帮助,但不要专门回答这个问题:

  • Use Jetty with Maven
  • Jetty Feature Start.jar

最佳答案

你不知道。

jetty-start Artifact 用于 jetty 分发。使用 jetty-start Artifact 时没有自动下载依赖项,因为假设您在本地磁盘上有分布并且只是试图将您的类路径编织在一起以用于服务器启动。

如果您希望在构建期间启动 web 应用程序以进行测试或构建目的,则使用 maven 可以使用 jetty-maven-plugin。通过使用该插件,您将获得所需的大部分依赖项,除非您尝试执行需要额外依赖项的特定操作,在这种情况下,您将它们添加到插件声明的部分。

干杯!

https://stackoverflow.com/questions/10413781/

相关文章:

php - 是否可以使用 PHP 添加事件监听器?

php - 从 php 中的文件夹中读取文件并列出 json 文件中的条目

r - 在每行中查找最小正值(不包括 0)

powershell - 使用 Powershell 为 Word 文档添加页眉和页脚

sql-server - 从数据库中获取高于平均水平的学生

wpf - 从模板绑定(bind)到 View 模型的属性

perl - 在 Perl 中复制二维数组

php - 这个 PHP 有什么问题?什么都没有出现

ms-access - 左外加入 Access ?

unix - 在 Solaris 上如何找到谁或哪个进程向我的进程发送了信号