【问题标题】:Eclipse Jetty Integration, how to setup dependencies?Eclipse Jetty Integration,如何设置依赖项?
【发布时间】:2019-03-28 07:07:29
【问题描述】:

我使用 Eclipse Jetty Integration 并假设这将管理我的 java ee 依赖项,但它似乎没有这样做?我该如何设置?

我已经从市场上安装了 Eclipse Jetty Integration v4.0。我设置了一个动态网络项目。没有任何 java 代码,这可以正常工作。当我创建一个 Jetty WebApp 并运行它时 index.html 显示得很好。

然后我创建一个 servlet。这取决于 javax.servlet 的子包

找不到这些依赖项。

我已经尝试从 Eclipse 库添加到类路径,并且整晚都在谷歌搜索,但无济于事。我可以下载一个版本的 jetty 并将其中的所有库导入到我的类路径中。

我希望 Eclipse Jetty Integration 会很乐意为我解决这个问题,只要我能找到合适的按钮来按下或包含合适的库。

如果这不是设置我的依赖项的正确方法,那么正确的方法是什么?

【问题讨论】:

  • 你能让项目“瞄准”Java EE Preview 服务器吗?它看起来不会与此插件启动您的应用的方式发生冲突。
  • nitind,我希望我可以将您的评论标记为答案,因为它是。我的想法是,我应该能够使用 Eclipse Jetty Integration 项目中包含的 jetty 服务器提供的依赖项。您的解决方案不包括这些,但似乎包括默认的 java-ee 依赖项。这也有效。就我现在的目的而言,这已经足够好了。我希望我不会在以后遇到两个 api 之间的差异。但是当我来到它时,我会越过那座桥。谢谢

标签: eclipse jakarta-ee dependencies jetty


【解决方案1】:

“Eclipse Jetty Integration”是一个插件(不是由 Eclipse Jetty 项目顺便维护的),它允许您从 Eclipse IDE 轻松运行 webapps(WAR 项目)。

项目必须在独立的意义上仍然有效,并具有所有各种依赖项(编译/运行时/提供/测试/等),以便 Eclipse IDE 可以编译您的项目。

Servlet API 是编译/提供的依赖项,您的项目需要编译,但不需要包含在其生成的 WAR 文件中(通常您的依赖项显示在 WAR 文件的 WEB-INF/lib 目录中)。

这取决于你和你的项目,来确定你想要你的依赖.. 例如:在你的 WAR 中,在你的 WAR 之外,在服务器类路径中,webapp 类路径中。 你会使用 JNDI 吗?如果是这样,您将必须注意如何声明您的 JNDI 资源,以及您打算如何访问这些资源。 您会将对象序列化为 HttpSession 吗?那么你需要知道你的依赖项在哪里(服务器/webapp/在集群上/是将从多个 webapps 访问的序列化数据),以便反序列化按照你的意愿工作。

设置/管理/维护依赖项的最常见(我真的是说最常见的)方法是使用构建工具(Maven 或 Gradle),让这些工具担心您的项目已构建、打包和测试。

是的,Eclipse IDE 支持基于 Maven 和 Gradle 的项目,并与两者完美集成。

注意:从 Eclipse IDE 运行项目不需要“Eclipse Jetty Integration”插件。事实上,更多的开发人员(根据各种行业调查,比例接近 45:1)只是使用嵌入式码头技术来运行项目或设置项目的单元测试。

【讨论】:

  • 谢谢 Joakim,我指的不是我自己的依赖,而是 jetty 提供的依赖,通常是那些我不会管理的,因为它们包含在服务器中。
  • 这仍然由您的项目完成,用 Maven 术语来说,这将是您项目中标有 <scope>provided</scope> 的依赖项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 2018-09-27
  • 2015-12-24
  • 1970-01-01
相关资源
最近更新 更多