Java Maven依赖项或Eclipse项目方面

Java Maven依赖项或Eclipse项目方面,java,eclipse,maven,servlets,Java,Eclipse,Maven,Servlets,我在Eclipse(Oxygen)中使用maven创建了一个没有原型的项目。我的问题是。。。要使用ServletAPI,如果我使用“项目属性>项目面”并添加“动态Web模块”,是否与在Servlet API(javax.Servlet API)的pom.xml中添加依赖项相同 我是说 项目属性>项目方面>动态Web模块4.0(选中) 和…一样吗 <dependency> <groupId>javax.servlet</groupId> <arti

我在Eclipse(Oxygen)中使用maven创建了一个没有原型的项目。我的问题是。。。要使用ServletAPI,如果我使用“项目属性>项目面”并添加“动态Web模块”,是否与在Servlet API(javax.Servlet API)的pom.xml中添加依赖项相同

我是说

项目属性>项目方面>动态Web模块4.0(选中)

和…一样吗

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>4.0</version>
  <scope>provided</scope>
</dependency>

javax.servlet


Project facets允许IDE更好地理解您的项目,以便它可以为您执行一些特殊操作。例如,应用动态Web模块将使eclipse知道您的项目将在Web服务器上运行,因此您需要该方面将您的项目添加到Web服务器。当您将动态Web模块应用到项目中时,eclipse还假设您将在运行时获得Web服务器依赖项。facet保持在IDE级别


而maven dependency为您提供了项目中执行任务所需的库。在部署项目包时,它们将保留在项目包中。

而不是

 <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0</version>
<scope>provided</scope>

javax.servlet

你试过什么吗?当您添加facet时,您发现了什么?我想它没有做相同的事情,因为我尝试创建了一个项目,正如您所提到的,并且选择了项目facets,更新了maven项目,但是它没有向pom添加任何servlet依赖项。我认为项目方面是用于运行时配置的。问题是两者之间的区别是什么。在apache服务器包或动态Web模块中,如果您通过项目方面添加javax servlet api jar,则该jar将添加到您的项目中,如果我们将javax servlet api的依赖关系添加到您的项目中,则该jar也将添加到您的项目中所以这两个都是一样的。看起来不一样。动态Web模块>项目方面>运行时>运行时并选择Apache Tomcat 9.0,这将导入所有具有特定版本的Tomcat库,版本中有限制。Maven Dependency,添加具有我想要的版本的Servlet API。“虽然Maven Dependency为您提供了项目中执行任务所需的库,但在部署项目包时它们仍保留在您的项目包中。”除非您将Dependency标记为“提供”,否则否?