参考博主:
1.问题由来
最近在搞atlas2.0.0项目中,webapp模块打包成war,但是我在打包好的war报的WEB-INF下的classes文件夹里却找不到后台代码,错误的以为后台class文件没被打包,后来调用接口,发现各种接口却是可用的,最终发现后台代码被打进了lib文件夹,也就是和各种引用包被放在了一起,这和我们平时打包结果是不太一样的 ,平时项目代码打成war的时候是存在WEB-INF下的classes文件夹里的,在此记录一下
2.如何打入lib
webapp项目中,查看pom文件,pom文件中build节点下plugins下第一个plugin节点内容,这里节点<archiveClasses>true</archiveClasses>为true,这个节点英文含义:存档类文件,lib包是啥 ,当然是library,所以这个节点意为存档类文件,存档默认进lib
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archiveClasses>true</archiveClasses>
<attachClasses>true</attachClasses>
<overlays>
<overlay>
<groupId>org.apache.atlas</groupId>
<artifactId>atlas-dashboardv2</artifactId>
</overlay>
<overlay>
<!-- empty groupId/artifactId represents the current build -->
</overlay>
</overlays>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
<packagingExcludes>
WEB-INF/lib/junit*.jar,${packages.to.exclude}
</packagingExcludes>
</configuration>
</plugin>