背景: 当在构建一个项目要用到多个框架时,我们会去各自框架的官网下载对应的jar包,在项目还没开始,lib目录下可能就已经有很多个jar包呢,有用的、没有的、各个版本之间冲突的、没冲突的,删了也不知道各个版本间是否有关联,不删项目又显得很臃肿。 由此项目管理工具降临,maven只是其中一种。 介绍: Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。 它可以帮我们有效的管理项目,也是一套强大的自动构建工具,覆盖编译、测试、运行、清理、打包、部署整个项目构建周期。它提供了一个仓库的概念,统一的帮助我们管理第三方依赖的jar包,最大可行的避免由于环境配置不同所产生的在自己电脑上能运行而到其他电脑上不能运行的问题,目前有很多开源项目都是用maven进行管理。 安装: 官网www.maven.apache.org 我这里用的是3.5.0版本,可自行定义。在安装盘下解压缩 配置环境变量: 在计算机上右键——>属性——>高级系统设置——>环境变量——>系统变量——新建
修改path,添加内容
目录结构
创建一个项目目录
1.使用命令根据提示创建项目
2.也可以用一条命令直接创建:
mvn archetype:generate -DgroupId=com.cjq.hello -DartifactId=maven02-demo -Dversion=1.0.0SNAPSHOT -Dpackage=com.cjq.hellomaven中坐标和仓库 坐标:maven中任何一个依赖、插件、项目构建的输出,都可以被称之为一个构件,所有构件通过坐标作为其唯一标识,就好比快递通过地址和电话确保物件送达。
maven02-demo中的pom.xml
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cjq.hello</groupId> <artifactId>maven02-demo</artifactId> <version>1.0.0SNAPSHOT</version> <packaging>jar</packaging> <name>maven02-demo</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <!--groupId和artifactId形成坐标--> <version>4.1.0</version> <!--版本--> <scope>test</scope> </dependency> </dependencies> </project>仓库 这些构件都存放在仓库,仓库分为本地仓库和远程仓库,如果本地仓库找不到我们想要的构建,maven会去远程中央仓库下载构件到本地仓库中来提供使用。如果远程仓库找不到则会报错,maven提供了默认的中央仓库。 也可以通过http://search.maven.org/搜索想要的构件
修改仓库位置 maven下载依赖存放的默认位置是
<!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>/path/to/local/repo</localRepository> 找到上面这段,这里注释掉了,改为下面配置(可以自行定义)保存--> <localRepository>E:/repository</localRepository>复制一份settings.xml到本地仓库E:/repository目录下。以后修改版本就不用修改settings.xml
常用命令(在项目根目录下使用) mvn -v 查看maven版本 mvn compile 编译 mvn test 测试 mvn package 打包 mvn clean 删除target maven install 安装jar包到本地仓库中