jar冲突解决
方式一:第一声明优先原则:哪个jar依赖在前面就优先
方式二:
maven导入jar包概念
直接依赖:项目直接依赖包优先
传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖jar包传递到项目中去。
优先直接依赖
方式三:直接排除法
排除某个jar包下依赖包,在配置exclusions标签的时候,内部可以不写版本号,因此依赖包使用的版本和默认和本jar包一样
pom个别标签解释
dependencyManagment 锁定jar包版本(只锁,不主动依赖,要再加依赖)
防止b项目依赖a项目,b项目jar包与b项目直接依赖jar包不一样,通过锁定jar包,b项目必须用a项目中锁定的jar包
properties 统一管理jar包版本
maven工程拆分与聚合
拆分
项目中dao、utils等在多端是重复使用的,可以重用。如果多个端为重复的dao层代码,会造成代码重复。通过maven拆分可以解决代码重用和便于维护。
公司开发一个新项目,我们不需要重新考虑dao、service、utils等模块,如果这些模块已经存在,可以直接引用。
聚合
分散的模块整合在一起作为一个完整的项目
父工程和子工程
父子工程直接,子模块天生集成父工程,可以使用父工程所有的资源
父子工程直接不用建立关系,继承是天生的,不需要手动建立
子子平级,需要通过直接引用去依赖兄弟工程。依赖不是先天的,依赖是需要后天建立的。
maven run等操作
maven run父工程
maven run子工程
run子工程会找pom中的依赖,子子工程依赖,在本地没有子工程jar包,需要把父工程打包进本地仓库,把子工程打进本地仓库
IDE tomcat run
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile错误
1、解决方法:
将Installed JREs的设置修改为jdk即可
2、解决方法:
不能执行依赖包maven-compiler-plugin:2.3.2,判断原因是缺少这个jar包
问题解决:
打开pom.xml文件,在适当位置加入下列依赖:
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
</dependency>
3、解决方法:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>