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等模块,如果这些模块已经存在,可以直接引用。

聚合

分散的模块整合在一起作为一个完整的项目

父工程和子工程

父子工程直接,子模块天生集成父工程,可以使用父工程所有的资源
父子工程直接不用建立关系,继承是天生的,不需要手动建立

子子平级,需要通过直接引用去依赖兄弟工程。依赖不是先天的,依赖是需要后天建立的。

安卓排除java冲突的包 maven排除jar包冲突_jar包

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>