【问题标题】:Which Maven archetype for webapp哪个 Maven 原型用于 webapp
【发布时间】:2023-04-02 07:35:02
【问题描述】:

我对 Maven 还是很陌生,我有以下问题:

构建一个 Web 应用程序 (Java EE 6) 并使用 Web 服务。如果我使用其中一种 maven arcetype,我会得到一个 src/java/main & src/java/test 和一个 Web 应用程序文件夹。这被打包为 WAR,但是当包是 WAR 时我可以使用 webservice API 吗?当您想使用所有 API 并创建 Web 应用程序时,如何使用 Maven?

【问题讨论】:

标签: java jakarta-ee maven maven-archetype


【解决方案1】:

不确定我是否理解您的问题,但您用于创建项目的原型并不重要。这是创建一些所需工件的简单方法。 如果您想使用 Web 服务,请添加适当的依赖项(很可能范围为“已提供”,因为您的容器已经提供了实现。

如果您将其打包为 WAR,您将无法使用完整的 EE 堆栈(仅限 servlet),除非您要部署到符合 EE6 的应用程序服务器。 如果您想使用 EJB 和资源适配器,您需要将其打包为 EAR(如上所述,在 WAR 和 EE6 中支持 EJB)。

如果您想要更多模块和打包,我认为还有一个“完整”EE 应用程序的原型 :)

希望对你有帮助。

【讨论】:

  • 嗨,看来你明白我的意思了:)我是从使用 Eclipse 项目更改为 Maven。在 Eclipse 中,我创建了一个 EJB 项目,一个动态 Web 项目,然后将它们添加到一个 EAR 项目中。现在,在 Maven 中,如果我使用基本的 Maven 原型(尽可能简单),我会得到标准的目录布局。在 Maven 项目中混合来自 EJB 和 Web 应用程序代码(例如支持 bean)的代码(当然都使用包来构建)是否正确?然后让 Maven 制作一个 EJB 和一个 WAR 工件,然后将这两者组合成一个 EAR,对吗?
  • 很好,我做对了:)。基本上你所做的是将你的 EjB 打包到一个或多个 jar 模块中,打包“ejb”,然后打包一个或多个 Web 模块,打包为“war”。最后,您将“部署”项目或“应用程序”打包为“耳朵”。您指定这些模块之间的依赖关系,并且很可能将其与“主/父”项目结合起来,您可以在其中指定依赖关系的版本等。我建议阅读 Maven 和多模块项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-30
  • 2017-04-18
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 2012-07-16
相关资源
最近更新 更多