我使用 Netbeaans 构建了一个基本的 Java Web 项目,它使用 Maven。
问题是,在我的“依赖项”中,我看到了“javaee-web-api-6.0.jar”。但是,当我构建项目时,在 .war 文件中我看不到这个 .jar 文件包含在任何地方。
我是否遗漏了某些内容,或者是否需要采取任何额外的步骤才能将所有依赖项包含在 .jar 中?
我使用 Netbeaans 构建了一个基本的 Java Web 项目,它使用 Maven。
问题是,在我的“依赖项”中,我看到了“javaee-web-api-6.0.jar”。但是,当我构建项目时,在 .war 文件中我看不到这个 .jar 文件包含在任何地方。
我是否遗漏了某些内容,或者是否需要采取任何额外的步骤才能将所有依赖项包含在 .jar 中?
Servlet API 依赖项永远不应出现在生成的 war 文件中。它是您的容器提供的依赖项。将它放在 war 文件中只会导致一堆类加载器问题。大多数容器无论如何都会忽略 jar 文件,如果它存在于战争中。
检查 javaee-web-api-6.0.jar 依赖的范围。如果提供了它,那么它将不会被捆绑到由此产生的战争中。
javaee-api-6.0.jar and servlet-api-3.jar
这些 jars 已经由 Tomcat 提供(假设使用 tomact)。为了验证这一点,看看<TOMCAT_HOME>\lib
这些罐子已经在那里了。