Maven 打包时加入本地依赖包

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>appNamefinalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-compiler-pluginartifactId>
            <version>2.3.2version>
            <configuration>
                <webResources>
                    <resource>
                        <directory>lib/directory>
                        <targetPath>WEB-INF/libtargetPath>
                        <includes>
                            <include>**/*.jarinclude>
                        includes>
                    resource>
                webResources>
                <source>1.7source>
                <target>1.7target>
            configuration>
        plugin>
    plugins>
build>  

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

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

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




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

你可能感兴趣的:(Maven)