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 使用惯例优于配置的原则 。它要求在没有定制之前,所有的项目都有如下的结构:

Maven了解及使用_第1张图片

其次, Why? 用这玩意儿,有什么好处?

  1. maven不仅是构建工具,它还是依赖管理工具和项目管理工具,提供了中央仓库,能够帮我们自动下载构件。 2.为了解决的依赖的增多,版本不一致,版本冲突,依赖臃肿等问题,它通过一个坐标系统来精确地定位每一个构件(artifact)。 3.还能帮助我们分散在各个角落的项目信息,包括项目描述,开发者列表,版本控制系统,许可证,缺陷管理系统地址。 4.maven还为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源软件。通过衍生工具(Nexus),我们还能对其进行快速搜索 5.maven对于目录结构有要求,约定优于配置,用户在项目间切换就省去了学习成本。

最后,how?

Maven 的安装与配置

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

设置环境变量,添加M2_HOME, 并添加到path中。 Maven了解及使用_第2张图片 验证maven安装配置是否成功:

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

line : 53
  E:\mavenRepo
line: 153
    
      aliyun
      *
      aliyun Maven
      http://maven.aliyun.com/nexus/content/groups/public/
    
  

Maven的使用

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

pom.xml 添加如下代码:


        
        
            junit
            junit
            4.12
        

    

此时,你会发现,在左侧的Maven Dependencies下会多出你添加的依赖的jar包。 Maven了解及使用_第4张图片

测试代码: Maven了解及使用_第5张图片 此处使用了手动执行单元测试的方式,也使用maven的命令的方式执行了一次执行测试方法的方式: 转存失败,建议直接上传图片文件

最后再看一下, 如何使用maven 创建一个web项目。

创建过程就不详细说了,注意修改一下packaging的格式,为war。 Maven了解及使用_第6张图片 项目创建好以后,在项目下添加如下内容(web.xml可来自tomact, index.jsp自己随意,servlet通过maven获取): Maven了解及使用_第7张图片

此时的pom.xml内容:


    4.0.0
    com.iotzzh.mavenWebDemo
    mavenWebDemo
    0.0.1-SNAPSHOT
    war

    
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        

    

    
        
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.2
                
                    
                        package
                        
                            run
                        
                    
                
            

        
    

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

你可能感兴趣的:(maven,java,开发语言)