Maven基础入门
一、maven是什么
- Apache Maven,是一个项目管理及自动构建的工具,有Apache软件基金会所提供。
- Maven是用Java语言编写的,是一款可以跨平台的软件。
- Maven解决了软件构建的两方面问题:一是软件是如何构建的,二是软件的依赖关系。
- Maven是以基于插件的架构构建的,这使其能够使用任何能用标准输入控制的应用程序。
官网页面:Maven – Welcome to Apache Maven
下载地址:https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip
依赖管理仓库地址:Maven Repository: Search/Browse/Explore (mvnrepository.com)
二、怎么使用
1.下载
2.系统环境变量配置
3.修改配置
① 修改本地仓库
② 修改镜像资源
- <mirror>
- <id>nexus-aliyun</id>
- <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
- <name>Nexus aliyun</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public</url>
- </mirror>
- <mirror>
- <id>maven-default-http-blocker</id>
- <mirrorOf>external:http:*</mirrorOf>
- <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
- <url>http://0.0.0.0/</url>
- <blocked>true</blocked>
- </mirror>
复制代码 三、入门
1.坐标
使用三个“向量”在“Maven仓库”中定位到唯一的一个“jar包”
- groupId:公司或组织的 id
- groupId:com.jeegole.maven
- artifactId:一个项目或者是项目中的一个模块的 id
- version:版本号
例如:
坐标- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
复制代码 对应Maven仓库位置- Maven本地仓库根目录\javax.servlet\servlet-api\2.5\servlet-api-2.5.jar
复制代码 四、Maven相关命令使用
1.基础命令
基础命令作用mvn compile主程序编译mvn test-compile测试程序编译mvn install构建 jar 包存入 Maven 本地仓库mvn clean删除 target 目录mvn package打包的结果jar 包,存放的目录:targetmvn test测试命令2.依赖生效范围
① compile 和 test 对比
main目录(空 间)test目录(空 间)开发过程(时 间)部署到服务器(时 间)compile有效有效有效有效test无效有效有效无效② compile 和 provided 对比
main目录(空 间)test目录(空 间)开发过程(时 间)部署到服务器(时 间)compile有效有效有效有效provided有效有效有效无效③ 结论
compile :默认级别,测试环境、开发环境、生产环境都有效,拥有最大权限。
test:测试环境有效,测试过程中使用的 jar 包,以 test 范围依赖进来。比如 junit。
provided:开发环境有效。
3.依赖的传递性
在 A 依赖 B,B 依赖 C 的前提下,C 是否能够传递到 A,取决于 B 依赖 C 时使用的依赖范围。
- B 依赖 C 时使用 compile 范围:可以传递
- B 依赖 C 时使用 test 或 provided 范围:不能传递,所以需要这样的 jar 包时,就必须在需要的地 方明确配置依赖才可以。
五、idea中使用
1.创建工程
2.pom.xml
3.使用方式
4.打断点方式
启动类中使用Maven启动,就可以使用debug的方式启动
5.注意部分
① 项目如果报ClassNotFound异常:
.last文件是下载失败的文件,但是它即使失败,也会占据jar包的位置,导致maven不能重新下载,就会导致运行异常。
俗话称之为:占着茅肯不拉屎
② 不是maven项目
③ pom文件失效
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |