Maven了解及使用

套用一下常用的what, why, how 对maven进行了解。

首先,what? maven是什么?

1、Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件

2、Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

总结:
  • 项目管理工具,类似.net 的nuget and node.js 中的npm(yarn or cnpm);
  • 包含一个对象模型,一组标准集合,一个项目的生命周期等等。(听着有些复杂,好像意思就是说,对这个管理工具进行一个解释,这个工具的作用就是管理插件,但是它又存在标准,依赖管理系统)
  • 通过第二点,可以看出maven的作用还可以管理项目报告,生成站点,管理jar文件等。
3. Maven 使用惯例优于配置的原则 。它要求在没有定制之前,所有的项目都有如下的结构:
2789632-53176f6cf8197f7a.png
其次, Why? 用这玩意儿,有什么好处?
  1. maven不仅是构建工具,它还是依赖管理工具和项目管理工具,提供了中央仓库,能够帮我们自动下载构件。
    2.为了解决的依赖的增多,版本不一致,版本冲突,依赖臃肿等问题,它通过一个坐标系统来精确地定位每一个构件(artifact)。
    3.还能帮助我们分散在各个角落的项目信息,包括项目描述,开发者列表,版本控制系统,许可证,缺陷管理系统地址。
    4.maven还为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源软件。通过衍生工具(Nexus),我们还能对其进行快速搜索
    5.maven对于目录结构有要求,约定优于配置,用户在项目间切换就省去了学习成本。
最后,how?
Maven 的安装与配置

下载地址:http://maven.apache.org/download.cgi

设置环境变量,添加M2_HOME, 并添加到path中。


2789632-203d57dbb8c59ac3.png

验证maven安装配置是否成功:


2789632-1df74b56215d763d.png

跟node.js 切换源的方式类似,找到setting.xml, 修改中央仓库地址,和设置本地仓库地址。

line : 53
  <localRepository>E:\mavenRepo</localRepository>
line: 153
    <mirror>
      <id>aliyun</id>
      <mirrorOf>*</mirrorOf>
      <name>aliyun Maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>
Maven的使用

Maven Repository website: https://mvnrepository.com/
在这个仓库里面,可以找到java中开源的框架,并加以引用。
例1:写一个HelloWorld类, 并在该类下写一个Say()方法,并且使用Junit写一个对它的单元测试。这个时候就需要用到Junit,此时在pom.xml 里面添加对Junit的依赖即可:
Maven Repository website的使用方式:

2789632-6f0b15fd9b42a0c5.png

pom.xml 添加如下代码:

<dependencies>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

    </dependencies>

此时,你会发现,在左侧的Maven Dependencies下会多出你添加的依赖的jar包。


2789632-e8ee7358870453be.png

测试代码:


2789632-4b67e427fcf3aaf2.png

此处使用了手动执行单元测试的方式,也使用maven的命令的方式执行了一次执行测试方法的方式:


2789632-6056607c4da6916c.gif
最后再看一下, 如何使用maven 创建一个web项目。

创建过程就不详细说了,注意修改一下packaging的格式,为war。


2789632-04c51e920936721f.png

项目创建好以后,在项目下添加如下内容(web.xml可来自tomact, index.jsp自己随意,servlet通过maven获取):


2789632-4278599093594003.png

此时的pom.xml内容:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance http://www.springmodules.org/schema/cache/springmodules-cache.xsd http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd"
    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.iotzzh.mavenWebDemo</groupId>
    <artifactId>mavenWebDemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

</project>

其实我本地安装的时tomact9, 然而我在使用maven build的时候也是可以正常build,所以可见,此处的tomact跟本地的tomact并不相关。
可见以下两种方式的运行方式:


2789632-821897c1e09dfbd8.gif

联系方式:


2789632-6f0b30a0273d3b5b.jpg
微信号

2789632-87c28aba3e71db62.png
公众号.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值