目录
1.1在idea中设置maven ,让idea和maven结合使用
一、IDEA集成Maven
1.1在idea中设置maven ,让idea和maven结合使用
idea中内置了maven ,一般不使用内置的, 因为用内置修改maven的设置不方便。
使用自己安装的maven, 需要覆盖idea中的默认的设置。让idea指定maven安装位置等信息
配置的入口
①:配置当前工程的设置, file--settings ---Build, Excution,Deployment--Build Tools
--Maven
- Maven Home directory: maven的安装目录
- User Settings File : 就是maven安装目录conf/setting.xml配置文件
- Local Repository : 本机仓库的目录位置
--Build Tools--Maven--Runner
- VM Options : archetypeCatalog=internal
- JRE: 你项目的jdk
-DarchetypeCatalog=internal , maven项目创建时,会联网下载模版文件,
比较大, 使用-DarchetypeCatalog=internal,不用下载, 创建maven项目速度快。 (2019版本以后,新的就不用添加这个)
②:配置以后新建工程的设置, file--other settings--Settings for New Project
1.2 使用模版创建项目
1)maven-archetype-quickstart : 普通的java项目
2)maven-archetype-webapp : web工程
二、依赖管理
2.1依赖范围, 使用scope表示的
scope的值有 compile, test, provided ,默认是compile
scope:表示依赖使用的范围,也就是在maven构建项目的那些阶段中起作用。
maven构建项目 编译, 测试 ,打包, 安装 ,部署 过程(阶段)
junit的依赖范围是 test
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>a</groupId>
<artifactId>b</artifactId> b.jar
<version>4.11</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version> servlet.jar
<scope>provided</scope> 提供者
</dependency>
你在写项目的中的用到的所有依赖(jar ) ,必须在本地仓库中有。
没有必须通过maven下载, 包括provided的都必须下载。
你在servlet需要继承HttpServlet( provided) , 你使用的HttpServlet是maven仓库中的。
当你的写好的程序, 放到 tomat服务器中运行时, 此时你的程序中不包含servlet的jar
因为tomcat提供了 servlet的.jar
三、Maven常用设置
3.1 maven常用操作
1.maven的属性设置
<properties> 设置maven的常用属性
2.maven的全局变量
自定义的属性,1.在<properties> 通过自定义标签声明变量(标签名就是变量名)
2.在pom.xml文件中的其它位置,使用 ${标签名} 使用变量的值
自定义全局变量一般是定义 依赖的版本号, 当你的项目中要使用多个相同的版本号,
先使用全局变量定义, 在使用${变量名}
3.2.资源插件
<build>
<resources>
<resource>
<directory>src/main/java</directory><!--所在的目录-->
<includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!—filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
<filtering>false</filtering>
</resource>
</resources>
</build>
作用: mybatis课程中会用到这个作用
默认没有使用resources的时候, maven执行编译代码时, 会把src/main/resource目录中的文件拷贝到target/classes目录中。