赞
踩
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。(使用Java语言开发)
角色划分:
本地仓库: 在本机中保存jar包的文件目录
远程仓库:maven官网几乎维护了所有的开源jar包信息.其中解决了版本冲突的问题.
私服镜像:为了让本地用户快速的获取jar包.使用镜像服务器提前下载jar包.速度更快.
maven的工作原理:
1.镜像服务器搭建时,需要定期拉去远程服务器中的jar包.
2.获取到的包.保存到镜像服务器本地.方便用户以后获取.
3.用户使用jar包时,先检查本地仓库中是否有包,如果没有 则连接私服镜像获取jar包. 如果有,则直接使用.
4.将jar包保存到本地之后,供用户使用.
maven的坐标:
组id 一般采用公司域名倒写的方式
项目名 项目名称必须唯一
版本号 指定项目的版本的
作用: 查找本地仓库中的对应jar包
maven的坐标意义:
1.maven中央仓库采用坐标的形式管理所有的jar包.
2.可以根据坐标的位置,唯一定位jar包.
3.可以根据坐标.依赖其它项目
maven jar包搜索地址:https://mvnrepository.com/
maven工具通过dependency标签和坐标查找指定的jar包文件.
根据坐标查找包
maven加载完成jar包之后,扫描当前文件的 xxxx.pom文件.之后根据该坐标继续添加jar包依赖项. 直到将所有的依赖信息加载完成为止
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <!--定义maven的坐标
- 组id 一般采用公司域名倒写的方式 www.tedu.cn
- 项目名 项目名称必须唯一
- 版本号 指定项目的版本的.
- 问题: maven的坐标有什么意义?
- 答:
- 1.maven中央仓库采用坐标的形式管理所有的jar包.
- 2.可以根据坐标的位置,唯一定位jar包.
- 3.可以根据坐标.依赖其它项目!!!.
- -->
- <groupId>com.taobao</groupId>
- <artifactId>spring_demo1</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>spring_demo1</name>
- <description>spring_demo1</description>
-
-
- <!--表示当前maven的配置信息-->
- <properties>
- <java.version>1.8</java.version>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <!--以后springboot的平台的版本就是2.3.7-->
- <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
- </properties>
- <!--依赖的jar包-->
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!--mybatis依赖包-->
- <!--<dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>2.2.0</version>
- </dependency>-->
-
- <!--spring整合mybatis-plus -->
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-boot-starter</artifactId>
- <version>3.4.3</version>
- </dependency>
-
- <!--jdbc依赖包-->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
-
- <!--添加lombok的包-->
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </dependency>
- </dependencies>
-
- <!--依赖的管理器,在内部指定的jar包的版本,所以不需要手动指定
- 一般多见于 springboot/springCloud的项目.
- -->
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-dependencies</artifactId>
- <version>${spring-boot.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <!--build的标签 项目编译/打包时有用-->
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.1</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <version>2.3.7.RELEASE</version>
- <configuration>
- <!--注意事项:必须与当前项目的主启动类一致 -->
- <mainClass>com.taobao.JtApplication</mainClass>
- </configuration>
- <executions>
- <execution>
- <id>repackage</id>
- <goals>
- <goal>repackage</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- </project>
还可以将settings.xml文件复制到该目录下:
clean: 清空项目中的target目录(class文件)
compile 使用maven工具进行编译 将xxx.java生成xxx.class
test 测试
site 站点文档
package 打包jar、war
deploy 部署到私服
install 将java项目打包为xxx.jar,存在本地仓库中
run 运行
https://maven.apache.org/download.cgi |
解压即可使用,打开解压文件夹中的conf中的settings.xml,在设置中配置镜像(配置一个即可)/本地仓库,如下:
- <!--配置本地仓库-->
- <localRepository>/path/to/local/repo</localRepository>
-
-
- <!--配置远程仓库(配置其一即可)-->
- <!--阿里云的私服镜像服务器-->
- <mirrors>
- <mirror>
- <id>nexus-aliyun</id>
- <mirrorOf>*</mirrorOf>
- <name>Nexus aliyun</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public</url>
- </mirror>
-
- <!--阿里云的私服镜像服务器-->
- <mirror>
- <id>nexus-aliyun</id>
- <mirrorOf>*</mirrorOf>
- <name>Nexus aliyun</name>
- <url>https://maven.aliyun.com/repository/public</url>
- </mirror>
-
- <!--华为的私服镜像服务器-->
- <mirror>
- <id>huaweicloud</id>
- <mirrorOf>*</mirrorOf>
- <url>https://mirrors.huaweicloud.com/repository/maven/</url>
- </mirror>
- <mirrors>
最好准备一个jar包文件放入本地库中,如果网络不好,很容易jar包下载失败,一路飘红!!!!
idea整合Maven只需一次,每次创建Maven项目时不需要再整合Maven,步骤如下:
创建每个Maven工程都需要idea中配置Maven
一般不会单独创建Maven工程,而是创建SpringBoot工程
URL地址: https://start.aliyun.com
IDEA的版本,不要太低.至少2020以上, 兼容 maven 3.8.x
现象如下:
方案①先将maven本地仓库清空,再重新加载reload
方案②如果jar包下载完整,还是飘红可以选择重启idea看看
常见异常的说明: 有时maven jar包下载不正常.但是maven的工具以为是正确的.导致jar包的导入报错!!! 如果遇到这样的报错信息.,则将jar包删除即可.
然后刷新maven
可以根据坐标查找到对应的jar包,将下载不完整的jar包删除,再次重新下载即可
需要自己手动的添加该项目
最终效果:
①Maven解压路径不能和其他路径耦合
②Maven路径不能出现特殊符号,不然会出现各种各样的异常(Maven是Java语言开发的)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。