当前位置:   article > 正文

Maven原理及使用_idea构建maven项目原理

idea构建maven项目原理

 一.底层原理

1)基本概念

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。(使用Java语言开发)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iUCkZOYO-1622610960633)(RackMultipart20210602-4-1ptwrts_html_dbbe040f008533d0.png)]

角色划分:
本地仓库: 在本机中保存jar包的文件目录
远程仓库:maven官网几乎维护了所有的开源jar包信息.其中解决了版本冲突的问题.
私服镜像:为了让本地用户快速的获取jar包.使用镜像服务器提前下载jar包.速度更快.
maven的工作原理:
1.镜像服务器搭建时,需要定期拉去远程服务器中的jar包.
2.获取到的包.保存到镜像服务器本地.方便用户以后获取.
3.用户使用jar包时,先检查本地仓库中是否有包,如果没有 则连接私服镜像获取jar包. 如果有,则直接使用.
4.将jar包保存到本地之后,供用户使用.

2)maven坐标

maven的坐标:

组id  一般采用公司域名倒写的方式

项目名  项目名称必须唯一

版本号  指定项目的版本的

作用: 查找本地仓库中的对应jar包 

maven的坐标意义:

1.maven中央仓库采用坐标的形式管理所有的jar包.
2.可以根据坐标的位置,唯一定位jar包.
3.可以根据坐标.依赖其它项目

maven jar包搜索地址:https://mvnrepository.com/ 

3)jar包依赖传递性原理

maven工具通过dependency标签和坐标查找指定的jar包文件.
根据坐标查找包
maven加载完成jar包之后,扫描当前文件的 xxxx.pom文件.

之后根据该坐标继续添加jar包依赖项. 直到将所有的依赖信息加载完成为止

 4) Pom.xml配置信息的说明

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <!--定义maven的坐标
  6. 组id 一般采用公司域名倒写的方式 www.tedu.cn
  7. 项目名 项目名称必须唯一
  8. 版本号 指定项目的版本的.
  9. 问题: maven的坐标有什么意义?
  10. 答:
  11. 1.maven中央仓库采用坐标的形式管理所有的jar包.
  12. 2.可以根据坐标的位置,唯一定位jar包.
  13. 3.可以根据坐标.依赖其它项目!!!.
  14. -->
  15. <groupId>com.taobao</groupId>
  16. <artifactId>spring_demo1</artifactId>
  17. <version>0.0.1-SNAPSHOT</version>
  18. <name>spring_demo1</name>
  19. <description>spring_demo1</description>
  20. <!--表示当前maven的配置信息-->
  21. <properties>
  22. <java.version>1.8</java.version>
  23. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  24. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  25. <!--以后springboot的平台的版本就是2.3.7-->
  26. <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
  27. </properties>
  28. <!--依赖的jar包-->
  29. <dependencies>
  30. <dependency>
  31. <groupId>org.springframework.boot</groupId>
  32. <artifactId>spring-boot-starter-web</artifactId>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework.boot</groupId>
  36. <artifactId>spring-boot-starter-test</artifactId>
  37. <scope>test</scope>
  38. <exclusions>
  39. <exclusion>
  40. <groupId>org.junit.vintage</groupId>
  41. <artifactId>junit-vintage-engine</artifactId>
  42. </exclusion>
  43. </exclusions>
  44. </dependency>
  45. <!--mybatis依赖包-->
  46. <!--<dependency>
  47. <groupId>org.mybatis.spring.boot</groupId>
  48. <artifactId>mybatis-spring-boot-starter</artifactId>
  49. <version>2.2.0</version>
  50. </dependency>-->
  51. <!--spring整合mybatis-plus -->
  52. <dependency>
  53. <groupId>com.baomidou</groupId>
  54. <artifactId>mybatis-plus-boot-starter</artifactId>
  55. <version>3.4.3</version>
  56. </dependency>
  57. <!--jdbc依赖包-->
  58. <dependency>
  59. <groupId>mysql</groupId>
  60. <artifactId>mysql-connector-java</artifactId>
  61. </dependency>
  62. <!--添加lombok的包-->
  63. <dependency>
  64. <groupId>org.projectlombok</groupId>
  65. <artifactId>lombok</artifactId>
  66. </dependency>
  67. </dependencies>
  68. <!--依赖的管理器,在内部指定的jar包的版本,所以不需要手动指定
  69. 一般多见于 springboot/springCloud的项目.
  70. -->
  71. <dependencyManagement>
  72. <dependencies>
  73. <dependency>
  74. <groupId>org.springframework.boot</groupId>
  75. <artifactId>spring-boot-dependencies</artifactId>
  76. <version>${spring-boot.version}</version>
  77. <type>pom</type>
  78. <scope>import</scope>
  79. </dependency>
  80. </dependencies>
  81. </dependencyManagement>
  82. <!--build的标签 项目编译/打包时有用-->
  83. <build>
  84. <plugins>
  85. <plugin>
  86. <groupId>org.apache.maven.plugins</groupId>
  87. <artifactId>maven-compiler-plugin</artifactId>
  88. <version>3.8.1</version>
  89. <configuration>
  90. <source>1.8</source>
  91. <target>1.8</target>
  92. <encoding>UTF-8</encoding>
  93. </configuration>
  94. </plugin>
  95. <plugin>
  96. <groupId>org.springframework.boot</groupId>
  97. <artifactId>spring-boot-maven-plugin</artifactId>
  98. <version>2.3.7.RELEASE</version>
  99. <configuration>
  100. <!--注意事项:必须与当前项目的主启动类一致 -->
  101. <mainClass>com.taobao.JtApplication</mainClass>
  102. </configuration>
  103. <executions>
  104. <execution>
  105. <id>repackage</id>
  106. <goals>
  107. <goal>repackage</goal>
  108. </goals>
  109. </execution>
  110. </executions>
  111. </plugin>
  112. </plugins>
  113. </build>
  114. </project>

还可以将settings.xml文件复制到该目录下:

5) 常见命令

clean: 清空项目中的target目录(class文件)

compile 使用maven工具进行编译 将xxx.java生成xxx.class

test 测试

site 站点文档

package 打包jar、war

deploy 部署到私服

install 将java项目打包为xxx.jar,存在本地仓库

run 运行

 二.Maven的使用

1)下载地址

https://maven.apache.org/download.cgi

2)配置镜像/本地仓库

解压即可使用,打开解压文件夹中的conf中的settings.xml,在设置中配置镜像(配置一个即可)/本地仓库,如下:

  1. <!--配置本地仓库-->
  2. <localRepository>/path/to/local/repo</localRepository>
  3. <!--配置远程仓库(配置其一即可)-->
  4. <!--阿里云的私服镜像服务器-->
  5. <mirrors>
  6. <mirror>
  7. <id>nexus-aliyun</id>
  8. <mirrorOf>*</mirrorOf>
  9. <name>Nexus aliyun</name>
  10. <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  11. </mirror>
  12. <!--阿里云的私服镜像服务器-->
  13. <mirror>
  14. <id>nexus-aliyun</id>
  15. <mirrorOf>*</mirrorOf>
  16. <name>Nexus aliyun</name>
  17. <url>https://maven.aliyun.com/repository/public</url>
  18. </mirror>
  19. <!--华为的私服镜像服务器-->
  20. <mirror>
  21. <id>huaweicloud</id>
  22. <mirrorOf>*</mirrorOf>
  23. <url>https://mirrors.huaweicloud.com/repository/maven/</url>
  24. </mirror>
  25. <mirrors>

3)idea整合Maven

最好准备一个jar包文件放入本地库中,如果网络不好,很容易jar包下载失败,一路飘红!!!!

 idea整合Maven只需一次,每次创建Maven项目时不需要再整合Maven,步骤如下:

4)创建SpringBoot工程

创建每个Maven工程都需要idea中配置Maven
一般不会单独创建Maven工程,而是创建SpringBoot工程
URL地址: https://start.aliyun.com在这里插入图片描述

在这里插入图片描述

三.Maven常见报错

1)版本兼容性问题

IDEA的版本,不要太低.至少2020以上, 兼容 maven 3.8.x

2)网络问题下载jar包失败

现象如下:
在这里插入图片描述
方案①先将maven本地仓库清空,再重新加载reload

方案②如果jar包下载完整,还是飘红可以选择重启idea看看

 

3)jar包下载不完整,处理方案

常见异常的说明: 有时maven jar包下载不正常.但是maven的工具以为是正确的.导致jar包的导入报错!!! 如果遇到这样的报错信息.,则将jar包删除即可.
然后刷新maven在这里插入图片描述

 在这里插入图片描述

 可以根据坐标查找到对应的jar包,将下载不完整的jar包删除,再次重新下载即可

4)有时IDEA 不能正确的识别maven项目

需要自己手动的添加该项目

在这里插入图片描述

最终效果:
在这里插入图片描述

5) Maven解压路径问题

①Maven解压路径不能和其他路径耦合
②Maven路径不能出现特殊符号,不然会出现各种各样的异常(Maven是Java语言开发的)

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号