"Dynamic Web Module"方面究竟为日食项目增加了什么



除了我之外,世界上的每个人似乎都知道"动态Web模块"方面到底在为项目添加什么。Web搜索揭示了大量的响应,即如何从该方面版本中或多或少不必要的更改所产生的各种错误中恢复,但几乎没有任何关于该方面实际作用的信息。

所以我的问题是:

  1. "动态Web模块"方面到底为我的eclipse项目添加了什么
  2. 我为什么要这样
  3. 为什么我的同事使用IntelliJ、Visual Studio代码等——在这个概念似乎不存在的地方——没有问题

记住我没有决定这些名字(当时我自己也抱怨过(。。。这个术语可以追溯到早期的J2EE教程,比如https://docs.oracle.com/cd/E17802_01/j2ee/j2ee/1.4/docs/tutorial-update2/doc/WebApp3.html本教程将解释J2EE web模块是当时Java Servlet规范中的web应用程序。J2EE喜欢包含其他规范,并对已经有名称的东西使用自己的命名。医生和工具经常效仿。

它还提到,它们可以包含静态web资源,事实上,您可以运行只包含静态资源的web模块。因此,WTP具有静态web模块和动态web模块的概念,就像Eclipse中的静态web项目和动态web项目一样。Facet将一个项目指定为这两个项目中的一个,并指定用于动态模块,它支持并在运行时需要API级别。

然后,服务器适配器必须说明它们提供的服务器类型可以支持哪些API版本。服务器工具和验证可以帮助您避免部署到不兼容的服务器,以及针对有效服务器进行构建。您希望使用有效的服务器进行构建,就像您希望使用预期的Java运行时进行编译一样。例如,这是避免调用当时不存在的类和方法的最直接的方法。

还添加了一个Module Core特性,它支持用于描述部署细节的API。详细信息,比如说你的Java类输出文件夹内容进入WEB-INF/classes,你选择的jar进入WEB-INF/lib,这些静态资源进入应用程序根目录,所有这些都符合运行时预期的布局。API是可插入的,因此可以通过例如Maven集成来实现。

UI中的术语可以更改,但这有其自身的痛点。社区倾向于不更新多年来一直正确的旧视频和教程。

最新更新