文章目录
IDEA创建maven项目
新版本更改为以下界面
每一个Maven项目,都应该有一个独一无二的坐标。就好比之前学过的空间坐标系,我们可以通过X轴、Y轴、Z轴确定空间中唯一的一个点。那么在中央仓库中,我们也可以通过groupId、artifactId、version确定一个唯一的依赖包(当然也可能没有)。
- groupId
组织Id,一般是公司域名的反转,不要使用大写和特殊字符
- artifactId
应用名,一般就是应用的名字,不要使用大写和特殊字符
- version
版本号
maven项目必有得目录结构
在maven module的根目录下,必须得有如下的结构
- pom.xml
- src/main/java
源代码路径,所有的Java文件都要放在这个路径下
- src/main/resources
配置文件的路径,原则上来说,maven工程所有的配置文件都要放在这个路径下
- src/test/java(没有的时候可以不需要)
测试文件的路径
- src/test/resources (没有的时候可以不需要)
测试需要的配置文件所在的路径
项目构建关键字
clean
可以帮助我们去删除编译生成的target文件夹
validate
这个指令是用来验证文件是否有权限,是否已经损坏等等。这个指令一般不用
compile
这个指令是用来编译的,可以帮助我们生成target文件夹
test
这个测试命令是用来帮助我们执行maven工程中的所有的测试方法的
会去执行我们src/main/test路径下的所有test文件中的测试方法
package
这个命令的意思是打包的意思,把我们的module工程打成一个jar包
执行了这个指令之后,会帮助我们去打包,这个包会生成在 target目录下
verify
其实就是去验证我们打的包是否合法。
install
安装的意思,其实就是可以帮助我们把target文件夹里面的包复制到你的本地仓库中去。
site
建立远程站点
deploy
部署项目
**说明:**site和deploy都是涉及到远程服务的部署的,可以帮助我们把本地仓库中的jar包上传到远程服务器中指定的位置并运行起来。在以后的开发中,部署项目我们不会使用maven,一般使用jenkins这个工具。
命令使用方法
方法一 在terminal终端执行
mvn 命令(clean等)
方法二 在右侧得maven中双击
依赖管理
在pom.xml下 导包、scope的传递范围、打包方式
每一个依赖都有自己的作用域。有四种作用域
- compile
假如没有声明作用域的情况,就是compile作用域
意味着这个依赖可以在编译的时候,运行的时候都可以生效
在src/main/java
src/test/java 路径下都有效
- test
只在测试包(src/test/java) 路径下生效
- provided
在编译的时候生效,在运行的时候失效
- runtime
意味着这个包在编译的时候失效,在运行的时候生效(mysql-connector-java )
依赖冲突
声明优先原则
<dependencies> 中 谁在上面 版本就是谁
就近原则
存在 依赖传递时 传递次数少的 就是版本
手动排除(exclusion)
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.3</version>
<!-- 手动排除 可以排除多个-->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
</exclusions>
</dependency>