maven打包war包时出现了pom不存在的jar包
标题是有点绕。
这几天在搞一个 SpringBoot
的短信项目, 在打包 war
包的时候,
发现war包中的 commons-lang
包有两个版本, 一个 1.0.1
, 一个 2.6
。
在 pom.xml
中我只导入了 2.6
的版本, 那么 1.0.1
的jar包是从哪来的呢?
先说结论
maven
的 package
命令会把 WEB-INF/lib
中的jar包也打包进war包中。
排错
首先先看maven的依赖, 使用的是IDEA。
点击View -> Tool Windows -> Maven Projects
, 在右边出现的窗口, 点击Show Dependencies
。
点击Alt
可以打开放大镜。
并没有找到commons-lang 1.0.1
。接下来把
pom.xml
的依赖全部注释掉, 只留下spring-boot-starter-web
运行Hello world
成功。
打包, 还是发现了commons-lang 1.0.1
。1
2
3
4<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>手动排除
commons-lang
, 打包, 还是有commons-lang 1.0.1
。1
2
3
4
5
6
7
8
9
10<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</exclusion>
</exclusions>
</dependency>发现war包的
commons-lang 1.0.1
是在WEB-INF/lib
下的
于是在src/main/webapp/WEB-INF/lib
下, 果然发现了commons-lang 1.0.1
的包
结论
maven
的 package
命令会把 WEB-INF/lib
中的jar包也会打包进war包中。