Maven核心概念:
1.坐标:使用三个向量在Maven仓库中定位到唯一一个jar包
①groupId:公司或组织id(公司或组织域名的倒序,通常也会加上项目名称)
②artifactId:一个项目或者项目中的一个模块的id
③version:版本号(SNAPSHOT 表示快照版本,正在迭代过程中,不稳定的版本,RELEASE 表示正式版本)
如何定位:
例:
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
上面坐标对应的 jar 包在 Maven 本地仓库中的位置:
Maven本地仓库根目录\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar
2.POM:项目对象模型(模型可以作为一个对象)
①pom.xml(重要)
1)默认版本3.8.1较低,最好改成更高的版本,自动生成的 App.java 和 AppTest.java 可以删除。
2)xml各个标签的含义
<!-- 当前Maven工程的坐标 -->
<groupId>com.atguigu.maven</groupId>
<artifactId>pro01-maven-java</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 当前Maven工程的打包方式,可选值有下面三种: -->
<!-- jar:表示这个工程是一个Java工程 -->
<!-- war:表示这个工程是一个Web工程 -->
<!-- pom:表示这个工程是“管理其他工程”的工程 -->
<packaging>jar</packaging>
<name>pro01-maven-java</name>
<url>http://maven.apache.org</url>
<properties>
<!-- 工程构建过程中读取源码时使用的字符集 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 当前工程所依赖的jar包 -->
<dependencies>
<!-- 使用dependency**配置一个具体的依赖** -->
<dependency>
<!-- 在这里配置坐标信息导入jar包 -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- scope标签配置依赖的范围 -->
<scope>test</scope>
</dependency>
</dependencies>
3.约定的目录结构:构建自动化
命令行
mvn archetype:generate ------生成Maven工程(在工作空间下执行)
mvn clean ------------删除 target 目录
mvn compile ---------------------主程序编译
mvn test-compile ------------------测试程序编译
target/classes -------------------------主体程序编译结果存放的目录
target/test-classes ------------------------测试程序编译结果存放的目录
mvn test ------------------测试(测试的报告存放的目录:target/surefire-reports)
mvn package ----------------打包 (结果存放的目录:target)
mvn install --------------------安装的效果是将本地构建过程中生成的 jar 包存入 Maven 本地仓库。这个 jar 包在 Maven 仓库中的路径是根据它的坐标生成的。