maven是一个自动化的项目构建管理工具
Maven 构建生命周期定义了一个项目构建跟发布的过程。
一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的:
1.Maven的作用
对第三方依赖库进行统一的版本管理
统一的目录结构
统一软件构建阶段
2. 使用Maven
2.1. 下载:
http://maven.apache.org/download.cgi
2.2. 解压缩
2.3. 配环境变量
配置MAVEN_HOME或者M2_HOME 配置Maven的目录可以看到"bin"目录
注:win10配环境变量:控制面板——>系统——>高级系统设置
系统变量:
MAVEN_HOME:D:\Maven3\apatche-maven-3.5.4
Path:%MAVEN_HOME%\bin
配置完成验证一下:dos窗口输入 mvn -v
2.4. settings文件
2.4.1. 配置本地仓库
在我们电脑的文件夹下是本地仓库,本地仓库的包是从中央仓库下载的。
你的仓库地址
例如:D:\maven3\repositor
2.4.2. 配置中央仓库的镜像
由于网络问题,阿里把中央仓库作了一个镜像,把中央仓库拷贝了一个备份这个备份叫“镜像”放到了国内
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2.4.3. JDK
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
3. Maven 仓库
在 Maven 的术语中,仓库是一个位置(place)。Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。
Maven 仓库有三种类型:
3.1. 本地(local)
运行 Maven 的时候,Maven 所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。默认情况下,不管Linux还是 Windows,每个用户在自己的用户目录下都有一个路径名为 .m2/respository/ 的仓库目录。Maven 本地仓库默认被创建在 %USER_HOME% 目录下要修改默认位置,在 %M2_HOME%\conf 目录中的 Maven 的 settings.xml 文件中定义另一个路径。
3.2. 中央(central)–默认的远程仓库
Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到。中央仓库的关键概念:这个仓库由 Maven 社区管理。不需要配置。需要通过网络才能访问。要浏览中央仓库的内容,maven 社区提供了一个 URL:http://search.maven.org/#browse。使用这个仓库,开发人员可以搜索所有可以获取的代码库。
3.3 远程(remote)
如果 Maven 在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库的概念,它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。
3.4. Maven 依赖搜索顺序
当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:
步骤 1 - 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。
步骤 2 - 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行步骤 4,如果找到了则下载到本地仓库中已被将来引用。
步骤 3 - 如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
步骤 4 - 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库已被将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。
4. Maven 构建 Java 项目
4.1. 构建Java项目
Maven 使用原型 archetype 插件创建项目。要创建一个简单的 Java 应用,我们将使用 maven-archetype-quickstart 插件。
Archetype是一个Maven项目模板工具包。原型被定义为原始模式或模型,从中创建所有其他相同类型的东西。
创建一个基于 maven 的 java 应用项目。
命令格式如下:
mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart
参数说明:
-DgourpId: 组织名,公司网址的反写 + 项目名称
-DartifactId: 项目名-模块名
-DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart,创建一个简单的 Java
使用原型
要基于Archetype创建新项目,您需要调用mvn archetype:generate goal,如下所示:
mvn archetype :generate
4.2. 成功之后,去看看java文件
cd consumerBanking
tree
4.3. 编译
进入项目路径
mvn compile
4.4. 测试
mvn test
测试报告存放在 consumerBanking\target\surefire-reports 文件夹中
4.5. 打包
mvn package
在eclipse中打包:
选择项目/POM.xml,右键 run as ---> maven install
4.6. 运行
java -classpath classes com.bdqn.bank.App
在eclipse中运行:
第一种:选择项目/POM.xml,右键 run as —> maven test
第二种:选择项目/POM.xml,右键 run as —> maven build… —> 输入compile,点run
5.maven报错
5.1、maven编译报错
错误实例:
Perhaps you are running on a JRE rather than a JDK?
解决办法
maven需要jdk编译
路径