Maven 打包时加入本地依赖包

来源:互联网 发布:mac安装win7双系统 编辑:程序博客网 时间:2024/05/17 07:49

Maven 打包时加入本地依赖包


问题描述

Maven 工程部署到 Tomcat 后,启动报错,找不到相应的类文件:

java.lang.NoClassDefFoundError: com/vmware/vim25/InvalidPropertyFaultMsg

问题原因

查看报错信息,发现找不到的类都是本地依赖包中的类;在 Tomcat webapp 应用部署路径下 lib 文件中没有本地依赖 jar 包。

查看资料知道 Maven 打包时默认不加入本地依赖的jar包,要将依赖的本地 jar 包一并加入打包后的 war 包,需要在 pop.xml 文件中进行设置。

解决方法

在 build 下加入 plugin 设置,默认将 lib (工程目录下)下的所有 jar 文件打包到 WEB-INF/lib 下,也是可以打包其他的文件(如xml 、properties等),配置如下:

<build>    <finalName>appName</finalName>    <plugins>        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-compiler-plugin</artifactId>            <version>2.3.2</version>            <configuration>                <webResources>                    <resource>                        <directory>lib/</directory>                        <targetPath>WEB-INF/lib</targetPath>                        <includes>                            <include>**/*.jar</include>                        </includes>                    </resource>                </webResources>                <source>1.7</source>                <target>1.7</target>            </configuration>        </plugin>    </plugins></build>  

发现还是没把本地jar包打入war包。

后面偶然搜到使用maven打war,本地的jar包没有被包含这篇文章,
其可行的解决办法:

修改 lib 的目录到 /src/main/webapp/WEB-INF/lib/,
这样 package 打包时就自然会把 jar 文件复制到 war 包中。




参考文章
使用maven打war,本地的jar包没有被包含
maven打包时加入依赖包及加入本地依赖包(没效果)