什么是Maven?
我们在写项目时会用到很多的jar包, 而Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。
使用Maven管理项目的好处主要有两点,其一是使用Maven管理的Java 项目都有着相同的项目结构。 有一个pom.xml 用于维护当前项目都用了哪些jar包
Maven的配置
下载好maven后,我们需要在settings.xml加入阿里的镜像,这样我们下载jar包的速度就会大大提高,
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>
配置全局jdk版本,这样创建maven项目就会自动使用该版本,和镜像配置类似
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
Maven的坐标
<groupId>...</groupId> // 所需jar包的项目名 <artifactId>...</artifactId> // 所需jar包的模块名 <version>...</version> // jar包的版本号 <packaging>jar</packaging> //打包方式
传递依赖 与 排除依赖
1.传递依赖:如果我们的项目引用了一个Jar包,而该Jar包又引用了其他Jar包,那么在默认情况下项目编译时,Maven会把直接引用和简洁引用的Jar包都下载到本地。
2.排除依赖:如果我们只想下载直接引用的Jar包,那么需要在pom.xml中把排除的依赖写上即可
<exclusions> <exclusion> <groupId>...</groupId> <artifactId>...</artifactId> <packaging>...</packaging> <version>...</version> </exclusion> <exclusions>
scope依赖范围
- compile :默认范围,用于编译
- provided:此依赖范围,对于编译和测试classpath有效,而对运行时无效
- runtime: 在执行时需要使用 ,jdbc驱动实现
- test: 它只用于编译测试代码和运行测试代码的时候才需要
- system: 系统依赖范围,使用system范围的依赖时必须通过systemPath元素显示地指定依赖文件的路径,不依赖Maven仓库解析