一、依赖管理
1.1 依赖范围
依赖范围: 使用scope表示依赖的范围
依赖范围表示: 这个依赖(jar和里面类)在项目构建的那个阶段起作用
依赖范围scope:
-
compile: 默认 参与构建项目的所有阶段
-
test: 测试,在测试阶段使用,比如执行mvn test会使用junit
-
provided: 提供者 项目在部署到服务器时,不需要提供这个依赖的jar 而是由服务器这个依赖的jar包
明显的是sevlet和jsp依赖
二、常用设置
2.1.<properties></properties>
里面的配置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 项目构建使用的编码,避免中文乱码-->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 项目生成报告使用的编码,避免中文乱码-->
<maven.compiler.source>1.8</maven.compiler.source>
<!--源码编译jdk版本 -->
<maven.compiler.target>1.8</maven.compiler.target>
<!--代码运行jdk版本 -->
</properties>
2.2 . 全局变量
在properties定义标签,这个标签就是一个变量,标签的文本就是变量的值
使用全局变量表示多个依赖使用的版本号:
-
在properties标签中定义标签,指定版本号:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <!-- 自定义变量--> <spring.version>5.2.5.RELEASE</spring.version> <junit.version>4.11</junit.version> </properties>
-
使用全局变量,语法 ${变量名.version}
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency>
2.3. 资源插件
处理的配置文件的信息,maven默认处理配置文件
-
项目编译后 maven会把src/main/resouces目录中的文件拷贝到target/classes目录下
-
maven只处理src/main/java目录下的 .java文件,把这些java文件编译为class,拷贝到target/classes目录中,不处理其他文件
-
通过资源插件可以使 src/main/java目录下的 配置文件 拷贝到 target中, 在 pom中的bulid中添加:
<build> <resources> <resource> <directory>src/main/java</directory> <!--所在目录--> <includes> <!-- 目录下的文件--> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <!-- filtering选项为false不启用过滤器, *。propertry已经起到过滤作用了--> <filtering>false</filtering> </resource> </resources> </build>