转载

Maven入门(一)

Maven入门(一)

1. 概念
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具(来自百度百科)。
通俗点来讲就是一个专门管理java项目的项目管理工具,在学习之初,我把它当成是一个更高级的Eclipse来理解学习,当然大家也可以根据自己的学习方法来入手。
2. 作用
对比平常编写大项目大小,maven中的项目大小要小的很多,因为平常项目的中需要的jar包还是比较多的而且大的,而代码文件大小是很小的,maven将项目中的jar包进行统一管理,存放在默认的位置,也就是我们经常说的本地仓库中,所以项目大小就小了很多。
从maven的工作原理来讲,它有四个好处:
(1)依赖管理,也就是管理jar包(涉及仓库知识,下面会讲)
(2)一键构建,不再需要将项目发布到tomcat中再开启tomcat运行,可以直接在eclipse中创建maven项目,然后调用tomcat:run命令进行运行。
3. 下载安装
这里写图片描述
下载网址:http://maven.apache.org/download.cgi,这里我用的是最新的版本来演示,下载的是3.5.4版本,且电脑操作系统为windows 10。注意:在3.3.X以上,使用的jdk必须为1.7以上。
下载对应系统的bin压缩包之后,解压缩,会看到maven中的文件结构。注意一点的是,解压缩之后,要将文件存放在不带空格和中文的路径中
4. 环境变量配置
环境变量的配置和配置jdk时是一样的原理。这里说明的是,我们要运行的maven的命令是存放在maven目录中的bin文件夹中的mvn,所以在配置的时候就将bin目录添加到path中即可。
这里写图片描述
这里写图片描述
测试:打开windows的cmd命令窗口,输入:mvn -v,成功的结果如下图:
这里写图片描述
5. maven项目的目录结构
maven项目严格按照以下结构来进行编译,主要看项目中的src目录,src中有main和test文件夹,main文件夹中又包含了java和resources文件夹,test也是一致。结构和作用如下图:
目录结构
6. 仓库
仓库,顾名思义,也就是存放一些项目必备的粮食(jar包)的地方。
(1)本地仓库:存放在本地服务器中,当运行项目的时候,maven会自动根据配置文件查找本地仓库,再从本地仓库中调用jar包使用。
(2)远程仓库(私服):当本地仓库中没有项目所需要的jar包时,那么maven会继续查找远程仓库,一般远程仓库指的是公司搭建的私有服务器,也叫私服;当jar包在私服中查找到之后,maven会将jar包下载到本地仓库中,下次使用的时候就不用再去找远程仓库。
(3)中央仓库:当远程仓库获取不到jar包时,就需要到中央仓库去查找,并下载在远程仓库中,本地仓库再从远程仓库中下载回来使用。此由maven团队维护,据说截止至16年,已经有2亿个包在仓库中!可以这么说,我们需要的包一切来源都是中央仓库,并不需要担心没有jar包。
以下是仓库的详解分析图:
这里写图片描述
7. Maven命令的生命周期
maven命令格式:mvn xxx xxx
maven的生命周期分为3种。下面只挑出比较常用的命令。
(1)Clean生命周期
Clean 清理编译的文件
(2)Default生命周期(重点)
Compile 编译主目录的文件
Test 编译并运行test目录的代码
Package 打包
Install 就是把项目发布到本地仓库
Tomcat:run 一键启动
(3)Site生命周期
Site:生成项目的站点文档
8. 入门程序开发
8.1.配置eclipse上的Maven路径等参数
这里写图片描述
8.2.修改maven的本地仓库
我们打开setting.xml(演示的结果是maven的conf文件中,带了注释)会看到,默认本地仓库会在当前用户的.m2的文件中,如图:
这里写图片描述
这里写图片描述
我们可以先将setting中的本地仓库修改,再将其setting路径修改为maven目录下的setting,下方的仓库就连接到我们指定的本地仓库。
这里写图片描述
这里写图片描述
这里写图片描述
8.3. 创建maven项目
这里写图片描述
8.4.填写坐标
这里写图片描述
8.5.手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件
这里写图片描述
8.6.处理编译版本
在pom.xml中添加以下代码

<build>
        <!-- 配置了很多插件 -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>  
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

8.7.创建一个servlet
这里写图片描述
在这个时候项目会显示红色错误,点进servlet文件查看,其实是还没有导入jar包导致的。接下来就在pom中添加以下代码:

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

添加后会看到我们导入了包。
这里写图片描述
8.8. 启动项目
右击项目—run as –maven build ….
这里写图片描述
这里写图片描述
我在servlet中写的是response.getWriter().print("第一个maven项目");这里显示了一部分是因为编码问题,这里重点不是这个,是我们成功启动了maven项目,并能访问,接下来我们就可以继续编写程序了。

正文到此结束