Maven打包后找不到class
masquee 人气:01.问题起源
某个项目Jenkins打包后生成的war包里没有class文件,并且没有任何报错或者警告,打包也提示成功。
2.可能的原因
历经各种折腾,偶然发现某个依赖的jar包在仓库里没有对应的pom.xml文件。但是maven没有报任何错误或者警告,导致一直没有发现。至于为何该依赖没有pom.xml文件,还不清楚原因。
一般情况下,比如我们依赖的commons-dbcp,仓库中包括的文件如下:
但是依赖的某个jar包,在maven仓库里包括的文件缺少了pom.xml。
后来将maven-compiler-plugin升级,可以看到在编译时maven报错,不过最终还是打包成功。虽然打包成功,但是里面没有classes文件。
3.解决方法
将依赖的jar包升级后重新deploy,项目里的依赖也相应升级。并且将maven-compiler-plugin版本升级到最新,防止再次出现这种问题时看不到maven报错。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin>
加载全部内容