‘
目录
一、 为什么使用maven
Apache Maven是个项目管理和自动构建工具,基于项目对象模型(POM)的概念。
- 使用maven可以帮助我们处理第三方依赖,及传递依赖。
- 规范目录结构,(可以通过配置使用个性化的目录结构,但不建议这么做,默认即可)
- 方便的打包,部署功能
- 方面的多模块管理能力
- 丰富的扩展插件,扩展功能,如代码检查插件,单元测试插件等。
二、 什么是自动构建工具
-
原始方式
HelloWorld.java --(javac) --> HelloWorld.class ----> java HelloWorld -
IDE集成开发环境
例如: eclipse,IDEA -
传统的web项目搭建时,一般是先手动的获取依赖的jar包,然后在放入web-inf的lib包下,如果存在传递依赖,则需要自己将相关的jar包下载下来并放入web-inf的lib包下。使用maven只需要在pom配置文件中将依赖配置好,maven会自动处理依赖。
三、 常用的构建工具
- ant
- maven
- Gradle android项目管理和构建已使用
四、Maven安装与配置
4.1 下载
载maven安装包,解压即可使用,下载地址:http://maven.apache.org/download.cgi
4.2配置maven环境变量
- MAVEN_HOME
- M2_HOME
- 修改path添加maven相关路径
4.3 验证
doc窗口执行命令“mvn –version”
4.4 配置
1) 换源
- 为什么换源
如果使用maven默认的远程仓库,那么下载速度就会非常的慢,可能还会断网,因为中心仓库实在国外,下面会说为什么要换:
- 如何将源换成阿里云
2) 配置本地仓库的位置
在 图中地址可知,
如果通过下图来自定义配置本地仓库(不建议,因为如果你先使用eclipse,再转成idea,这样一来都要进行配置,不热你就会发现很多本地仓库,使用使用默认即可)
五、 基本使用
- 远程仓库(小编称之为中心仓库)
- 公司私服
- 本地仓库
了解Maven怎么找jar包的,如下图:
(左边是本地仓库,右边是中心仓库(也就是maven的主仓库),下面是项目所需的jar包)
写项目时所需jar包,计算机会先从本地找是否有所需的jar包,如果有那么就直接拿过来使用,则反之,那么就会去中心仓库获取jar包,然后下载到本地,再去给项目使用,这样一来,那么下次就可以直接使用了,而不需要去远程仓库获取了
为什么要换源呢?
图中可知,最上边的那个时中心仓库的镜像(假设为阿里的仓库,中心仓库的备份),也可看出阿里仓库距离本地仓库相对于中心仓库要近一些,毕竟在国内,那么我们就可以选择去阿里拿jar包,不必要去选择中心仓库了
私服的有什么用,为什么要使用私服:
图中可知,假设一个项目有三个开发小组(1,2,3),如果每个小组都去远程仓库找jar包,那么就会很慢,如果公司设立了一个私服,那么就可以直接从私服中获取了,或者有小组从远程仓库中获取的jar包,给他做成一个jar包之后,也可以直接放在私服,这样可以保密,也防止别的人使用公司的私有东西
5.2 maven坐标
- group id:组织id,一般就是公司域名反写
- artifact id:项目名字
- version:版本
5.3 标准目录结构
- src/main(源代码)
- src/test(测试代码)
这样把测试代码单独放在一个类中,就可以在打包的时候屏蔽掉,打包之后的源代码中,是不会有测试代码的文件
- target 编译后、打包后的文件
5.4 pom介绍
Project Object Model,项目对象模型。通过xml格式保存的pom.xml文件。作用类似ant的build.xml文件,功能更强大
该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。
5.6 web项目创建实例
1) 创建maven项目
选择maven-archtype-webapp
2) 进入servlet相关的包
点击【finish】即可
3)修改为web3.1
第一步:修改pom.xml
<build>
<!-- 请改成自己项目的名字 -->
<finalName>mavendemo</finalName>
<plugins>
<!--第一步就是配置maven-compiler-plugin插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
刷新maven : Maven -> Update project
第二步:修改web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>Archetype Created Web Application</display-name>
</web-app>
第三步: 修改eclipse 的 .settings 配置文件 (org.eclipse.wst.common.project.facet.core.xml)
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="3.1"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.8"/>
</faceted-project>
修改完成后将项目部署,运行,测试是否正常。
Mavend的scope各种取值的详解