我正在为Java Web应用程序创建WAR。问题是在WAR内部,/ WEB-INF / lib中只包含了几个JAR。
这是我的POM.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--
*****THIS IS AN AUTOGENERATED POM; PLEASE DO NOT MODIFY OR COMMIT ANY CHANGES*****
-->
<parent>
...
</parent>
...
<scm>
...
</scm>
<packaging>war</packaging>
<dependencies>
<dependency>
...
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<javancss.fail>false</javancss.fail>
<checkstyle.fail>false</checkstyle.fail>
<cobertura.fail>true</cobertura.fail>
<pmd.fail>true</pmd.fail>
<findbugs.fail>false</findbugs.fail>
</properties>
</project>
作为一个例子,我喜欢来自不同Spring模块的5个依赖项,但是我只看到一个包。
我所有的依赖项都有一个&#34;编译&#34;范围。
为什么会这样?
问候。
答案 0 :(得分:1)
答案 1 :(得分:0)
您可能也对maven-shade-plugin感兴趣 - 它会从您的所有依赖项中创建一个大罐。
答案 2 :(得分:0)
好的,我没有注意到缺少的依赖关系是&#34;包括&#34;在我的其他项目中,这些项目期望提供这些依赖项。
这就是为什么那些依赖关系在有效pom中显示为&#34;提供&#34;。
我将依赖项锁定在我的POM中以确保它们具有&#34;编译&#34;范围:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.0.6.RELEASE</version>
<scope>compile</scope>
</dependency>
..
</dependencies>
</dependencyManagement>
现在依赖项已成功包含在WEB-INFO / lib中,它解决了每次我尝试部署时出现以下错误的问题:
java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
我感到愚蠢......
感谢您的帮助。