maven

Maven讲义

Maven概述

Maven是什么

Maven是一个由Apache基金会维护的项目构建工具。


项目构建是什么

我们将项目的代码从源代码具体程序文件的过程称为代码构建。

行为包括:编译、测试、运行、打包、部署的过程


Eclipse项目构建

构建过程如下:

创建一个Web项目

在项目中编写好源代码和配置文件

对源代码编译生成class文件

通过Junit对代码单元测试

将项目通过Eclipse工具放在Tomcat运行

将项目导出war,放在Tomcat运行


Maven构建项目

通过Maven构建工具可以一条命令完成上面所有的操作:

clean,清除命令,作用清除已经编译的class文件和war文件

compile,编译命令,作用是将java文件编译成class文件

package,打包命令,作用将class文件打成war包

test,测试命令,作用执行Junit工具(可以忽略)

deploy,部署命令,将war包放在指定的tomcat(可以忽略)

运行Tomcat,通过命令tomcat7:run (要加入Maven工具的Tomcat7插件)

install,安装命令,一条命令包括了,clean complile package test


使用Maven的好处

使用命令,一键快速编译部署

对项目的构建更加精细化,适合大型项目的构建

Maven支持直接通过配置文件(POM)的配置下载依赖的包

各大开源社区强制使用Maven导包,意味着如果不学它,有很多的开源项目不好入门。


Maven的安装

Maven说明

下载路径:http://maven.apache.org/download.cgi

目录说说明:



环境配置

第一步:确定JAVA_HOME配置

前提:如果要在CMD命令行运行Maven,必须要配置JAVA_HOME环境变量

通过set命令



如果没有配置JAVA_HOME环境会导致运行获得Java运行环境,异常如下:

第二步:配置MAVEN_HOME环境变量

第三步:指定Maven执行命令到当前目录

配置执行目录到PATH环境变量,让命令可以在当前目录可以执行

--变量Path变量

--成功增加结果变量:%MAVEN_HOME%\bin


第四步:测试配置,在CMD下键入mvn -h

如果返回参数提示如下图,说明配置成功!

第五步:配置Maven国内源

由于默认Maven使用国外的源,会导致下载jar比较慢。

配置Maven下conf文件夹的settings.xml文件






  | Specifies a repository mirror site to use instead of a given  repository. The repository that


  | this mirror serves has an ID that matches the mirrorOf element of  this mirror. IDs are used


  | for inheritance and direct lookup purposes, and must be unique  across the set of mirrors.


  |




  mirrorId


  repositoryId


  Human Readable Name for this Mirror.


  http://my.repository.com/repo/path




  -->




  alimaven


  aliyun maven


  http://maven.aliyun.com/nexus/content/groups/public/


  central       







入门配置

需求:通过命令行,使用Maven项目创建一个Java项目,并且打包。


第一步:创建项目

使用mvn archetype:generate命令创建java项目

第二步:设置坐标信息

设置坐标信息,通过以下三个信息确定坐标。标记全球Maven项目的唯一性。

groupId:组织ID

artifactId:项目名

package:包名

--提示,创建成功

第三步:编译项目

使用命令mvn compile

--编译成功,生成target文件夹

第四步:打包

通过命令mvn package


--打包成功,在target文件夹下会生成jar包



--通过该入门示例,可以发现,使用Maven创建构建项目,是可以不依赖任何开发工具的。


通过该入门示例,我们看到了我们需要学习的内容包括:Maven的命令、仓库


问题:默认Maven仓库在哪里?

答:C:\Users\YL\.m2,在登录用户的个人文件夹里面的.m2文件夹就是仓库


问题:有什么办法了解更多的mvn的命令呢?

答:mvn下的命令都是一个插件,Maven工具内置的可以使用的插件都在其官方帮助文档找到说明。

https://maven.apache.org/plugins/index.html


[if !supportLists]4.  [endif]Eclipse使用Maven

[if !supportLists]4.1.  [endif]配置Maven

[if !supportLists]4.1.1. [endif]第一步:打开Eclipse首选项

[if !vml]

[endif]

[if !supportLists]4.1.2. [endif]第二步:配置外部Maven

配置指定外部的Maven

[if !vml]

[endif]

--选择使用配置的外部的Maven

[if !vml]

[endif]

[if !supportLists]4.1.3. [endif]第三步:【可选】查看默认本机仓库

[if !vml]

[endif]



[if !supportLists]4.2.  [endif]通过Maven创建普通项目


[if !supportLists]4.2.1. [endif]第一步:创建一个Maven项目

[if !vml]

[endif]


[if !supportLists]4.2.2. [endif]第二步:创建一个自定义的Maven项目

[if !vml]

[endif]


[if !supportLists]4.2.3. [endif]第三步:设置项目构建信息

GroupId:组编号

ArtifactId:项目标识符(项目的项目名)

注意:Maven是通过GroupId和ArtifactId来确定项目的唯一性,我们称为坐标。任何项目要发布到Maven的库中,必须要有一个全球唯一的坐标。


Version:发布的版本号

Packaging:打包方式。

[if !supportLists](1)[endif]jar:以jar包方式打包,普通java项目

[if !supportLists](2)[endif]war:以war包方式打包,是web项目

[if !supportLists](3)[endif]pom:不打包,表示该项目是一个聚合项目。在多子项目的项目中,用于管理公用Maven构建属性

Name:【可以忽略】就是一个项目的一个名称,实际实战中,一般跟ArtifactID一致。

Description:【可以忽略】就是项目的描述


[if !vml]

[endif]

--创建成功

[if !vml]

[endif]


[if !supportLists]4.2.4. [endif]第四步:创建一个简单的HelloWorld类

package cn.zj;

public class HelloWorld {


    public static void main(String[] args) {

        System.out.println("HelloWorld");

    }

}


[if !supportLists]4.2.5. [endif]第五步:构建项目

注意:

[if !supportLists]1.     [endif]Maven build:用于执行Maven的命令

[if !supportLists]2.     [endif]Maven Clean:等同执行mvn clean

[if !supportLists]3.     [endif]Maven generate-source:等同mvn build

[if !supportLists]4.     [endif]Maven Intall:等同 mvn install 。同时执行,清除、编译、测试、打包、并将包安装到maven仓库

[if !vml]

[endif]

--构建成功

[if !vml]

[endif]


[if !supportLists]4.3.  [endif]通过Maven创建Web项目

[if !supportLists]4.3.1. [endif]第一步:创建一个Maven项目

[if !vml]

[endif]

--创建项目后,报错信息。提示没有web.xml

解决方案:

[if !supportLists](1)[endif].通过标签忽略web.xml

[if !supportLists](2)[endif].创建一个web.xml文件

[if !vml]

[endif]



[if !supportLists]4.3.2. [endif]第二步:创建web.xml

[if !supportLists]1.     [endif]创建一个在src/main/webapp下创建WEB-INF文件夹

[if !vml]

[endif]

[if !supportLists]2.       [endif]在WEB-INF文件下创建一个web.xml文件

--通过xsd规则文件创建

[if !vml]

[endif]

--创建成功后,报错消失。!!!!


选中项目右键

[if !vml]

[endif]


[if !supportLists]4.3.3. [endif]第三步:创建一个index.jsp

[if !vml]

[endif]

发现,报错。原因是没有加入JSP依赖的ServletAPI以及JSP的类库。


[if !supportLists]4.3.4. [endif]第四步:通过POM.xml加入依赖的类库

--依赖的类库的jar的坐标取哪里找?

答:可以在一下的公有仓库找。

http://mvnrepository.com/


http://search.maven.org/

注意:以后我们开发出来的功能组件希望让别人通过Maven使用,也可以提交到这两个用于库


"http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

  http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

    cn.zj

    maven-demo-02-web

    0.0.1-SNAPSHOT

    war


   

   



       

            javax.servlet

            javax.servlet-api

            3.0.1

              provided

       




       

            javax.servlet.jsp

            javax.servlet.jsp-api

            2.2.1

              provided

       

   

注意事项,创建Maven项目是报异常,可以强制更新项目

--右击项目-->选择Maven-->Update Project

[if !vml]

[endif]

--强制更新

[if !vml]

[endif]





[if !supportLists]4.3.5. [endif]第五步:通过Maven运行Tomcat启动项目

-1.安装tomcat7的Maven插件


所有的Maven工具内置插件都是有在https://maven.apache.org/plugins/index.html找到。

[if !vml]

[endif]


--安装2.2 版本

[if !vml]

[endif]

在pom.xml 配置配置tomcat插件

   

        


            

                  org.apache.tomcat.maven

                  tomcat7-maven-plugin

                  2.2

            

        

   

[if !supportLists]4.3.6. [endif]使用Tomcat插件运行Maven项目

点击项目鼠标右键

[if !vml]

[endif]

[if !supportLists]4.3.7. [endif]Maven下面Tomcat插件 项目细节配置

Tomvat 默认项目上下文路径是项目名称,默认端口是8080

开发者可以手动配置插件信息

   

        

        


            

                  org.apache.tomcat.maven

                  tomcat7-maven-plugin

                  2.2

                 

                 

                     

                      /maven

                     

                      80

                 

            

        

   

[if !supportLists]5.  [endif]修改jre 依赖版本

Maven 默认依赖的jar版本是 1.5,开发者可以配置jre版本,有两种配置方式


[if !supportLists]5.1.  [endif]单独为某一个项目配置

   

   


        

             org.apache.tomcat.maven

             tomcat7-maven-plugin

             2.2

            

            

                 

                  /maven

                 

                  80

            

        

        

             org.apache.maven.plugins

             maven-compiler-plugin

            

                 

                  1.8

                 

                  1.8

            

        

   


[if !supportLists]5.2.  [endif]修改setting.xml配置文件

可以修改 maven根/confg/setting.xml 在 标签中添加如下代码,使用此种方式全局生效

以后创建的项目全部都是1.8版本

 jdk-1.8

 

  true

  1.8

 

 

  1.8

  1.8

  1.8

 



[if !supportLists]6.  [endif]通过Maven创建多个工程组成的项目

需求:使用Maven项目创建一个ssm整合的项目。项目的每一层为一个工程。


[if !supportLists]6.1.  [endif]第一步:创建Maven项目

注意:

[if !supportLists]1.     [endif]表示层是WEB项目,其他的都是功能组件,所以使用普通的Jar项目

[if !supportLists]2.     [endif]Parent项目是一个聚合项目,主要用于维护统一的包依赖,统一的插件,统一构建项目(测试、编译、打包)

[if !supportLists]6.1.1. [endif]创建parent-项目

[if !vml]

[endif]

[if !supportLists]6.1.2. [endif]创建聚合项目的子模块项目

[if !vml]

[endif]


[if !supportLists]6.1.3. [endif]最终效果

[if !vml]

[endif]


[if !supportLists]6.2.  [endif]第二步:Eclipse实现项目分组

[if !supportLists](1)  [endif].将项目列表使用Working Sets显示

[if !vml]

[endif]


[if !supportLists](2)  [endif].插件一个项目分组

[if !vml]

[endif]


[if !supportLists](3)[endif]设置项目组信息

[if !vml]

[endif]

--分组后结果

[if !vml]

[endif]


[if !supportLists]6.3.  [endif]第三步:聚合项目后的效果

--聚合所有需要构建的工程,可以实现统一构建项目。所谓的统一构建项目,就是统一的执行清除、测试、编译、打包等操作

--在聚合项目ssm-parent通过 实现聚合所有的需要统一构建的项目

[if !vml]

[endif]


--代码

"http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

  http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.0.0

  cn.zj

  ssm-parent

  0.0.1-SNAPSHOT

  pom

  这是一个聚合项目,本身至于维护其它子项目的包关系插件等


 

 

   ssm-mapper

   ssm-service

   ssm-pojo

   ssm-web

   ssm-util

 


[if !supportLists]6.4.  [endif]第四步:项目的继承

注意:所谓的项目继承,就是一个项目已经在pom.xml声明的各种元素,继承的子工程的pom.xml也获得该父工程的pom.xml所有声明的元素。


前提:以前如果每个工程需要使用Log4J和Junit,都要在各自的项目的pom.xml加入依赖。这样做他麻烦了。

需求:在ssm-parent声明一次依赖Log4J和Junit,其他所有的子工程都可以使用。


[if !supportLists](1)[endif]在父包加入了依赖

[if !vml]

[endif]


[if !supportLists](2)[endif]在子项目继承父工程。也获得了父工程声明的元素

[if !vml]

[endif]


[if !supportLists]6.5.  [endif]第五步:依赖包的版本统一管理

需求:实现所有项目依赖的类库的版本统一管理。


答:可以通过属性的设置与版本锁定,使用依赖包的统一管理

[if !supportLists](1)[endif]父项目,设置属性与版本锁定

"http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

  http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

    cn.zj.parent

    ssm-parent

    0.0.1-SNAPSHOT

    pom

    这是一个聚合项目,本身至于维护其它子项目的包关系插件等


   

   

   

       

        1.2.17

        4.12

        4.3.16.RELEASE

   

   

   

       

            log4j

            log4j

            ${log4j.version}

           

            compile

       

       

            junit

            junit

            ${junit.version}


            test

       

   


   

   




                org.springframework

                spring-webmvc

                ${springmvc.version}



   

   

   

        ssm-web

        ssm-service

        ssm-mapper

        ssm-pojo

        ssm-utils

   


[if !supportLists](2)[endif]子项目,不需要再指定版本锁定的类库的版本

"http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

  http://maven.apache.org/xsd/maven-4.0.0.xsd">


  4.0.0


  cn.zj.controller


  ssm-web



  war




 


 

    cn.zj.parent

    ssm-parent

   

    0.0.1-SNAPSHOT



 






 


    org.springframework

    spring-webmvc




 



[if !supportLists]6.5.1. [endif]依赖的范围

Scope 声明依赖包在哪个阶段有效

Compile(默认)  spring,mybatis

编译(compile)时需要测试时需要,,运行时需要,打包时需要

Provided  jsp-api.jar   servlet-api.jar

编译(compile)时需要,测试(test)时也需要,运行时不需要,打包时不需要


Runtime   数据库驱动包

编译时不需要,测试时需要,,运行时需要,打包时需要

Test  junit.jar

编译时不需要,测试时需要,运行时不需要,打包也不需要



[if !supportLists]6.6.  [endif]第六步:在ssm-web工程配置SpringMVC框架

[if !supportLists]6.6.1. [endif]导入包依赖

--在ssm-parent对依赖包版本锁定

"http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

  http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

    cn.zj.parent

    ssm-parent

    0.0.1-SNAPSHOT

    pom

    这是一个聚合项目,本身至于维护其它子项目的包关系插件等


   

   

   

       

        1.2.17

        4.12

        4.3.16.RELEASE

        3.0.1

        2.2.1

   



   


   

       

            log4j

            log4j

            ${log4j.version}

           

            compile

       



       

            junit

            junit

            ${junit.version}


            test

       



   


   

   

   



                org.springframework

                spring-webmvc

                ${springmvc.version}




                javax.servlet

                javax.servlet-api

                ${servlet-api.version}

                provided




                javax.servlet.jsp

                javax.servlet.jsp-api

                ${jsp.version}

                provided





   


   

   

       

       

           

           

                org.apache.maven.plugins

                maven-compiler-plugin

                3.5

               

               

                  

                   1.8

                  

                   1.8

               

           

       

   


   


   

        ssm-web

        ssm-service

        ssm-mapper

        ssm-pojo

        ssm-utils


   


--在ssm-web的pom.xml导入依赖包

"http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

  http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

    cn.zj.controller

    ssm-web


    war


   

   

        cn.zj.parent

        ssm-parent

       

        0.0.1-SNAPSHOT

       


   


   





            org.springframework

            spring-webmvc






            javax.servlet

            javax.servlet-api





            javax.servlet.jsp

            javax.servlet.jsp-api




   

   

       


           

                org.apache.tomcat.maven

                tomcat7-maven-plugin

                2.2

           

       

   




[if !supportLists]6.6.2. [endif]创建一个请求页面

<%@pagelanguage="java"contentType="text/html;

  charset=UTF-8"

    pageEncoding="UTF-8"%>

"Content-Type"content="text/html;

  charset=UTF-8">

Insert title here


  "${pageContext.request.contextPath }/user/add.do">add


[if !supportLists]6.6.3. [endif]编写web.xml

"1.0"encoding="UTF-8"?>

"http://www.w3.org/2001/XMLSchema-instance"

    xmlns="http://java.sun.com/xml/ns/javaee"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

    id="WebApp_ID"version="2.5">


   

   

         MVC

         org.springframework.web.servlet.DispatcherServlet


        

        

             contextConfigLocation

            

             classpath:applicationContext*.xml

        


        

         1


   

   

         MVC

         *.do

   



[if !supportLists]6.6.4. [endif]编写配置文件spring-mvc.xml

 

    "cn.zj.ssm"/>

   

   

   

         class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        

         "prefix"value="/WEB-INF/views/"/>

        

         "suffix"value=".jsp"/>

   



[if !supportLists]6.6.5. [endif]编写Controller组件类

package cn.zj.controller;


import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Controller;

import  org.springframework.web.bind.annotation.RequestMapping;


@Controller

@RequestMapping(value="/user")

public class  StudentController {


    @RequestMapping(value="/add")

    public void add(){

        System.out.println("-增加用户-");

    }


}


[if !supportLists]6.7.  [endif]第七步:在ssm-mapper工程配置Mybatis框架

[if !supportLists]6.7.1. [endif]导入包依赖

--ssm-mapper项目导入依赖

"http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

  http://maven.apache.org/xsd/maven-4.0.0.xsd">


  4.0.0


  cn.zj.mapper


  ssm-mapper


 


    cn.zj.parent


    ssm-parent


    0.0.1-SNAPSHOT




 




 




     

        mysql

        mysql-connector-java

     




     

        org.mybatis

        mybatis

     



     

        cn.zj.pojo

        ssm-pojo

        0.0.1-SNAPSHOT

     



     

        com.alibaba

        druid

     



 




[if !supportLists]6.7.2. [endif]创建操作映射注解

--创建一个操作接口,编写一个插入数据的SQL语句

package cn.zj.mapper;


import org.apache.ibatis.annotations.Insert;

import org.apache.ibatis.annotations.Options;


import cn.zj.pojo.User;


public interface StudentMapper

  {


    @Insert(value="INSERT  INTO t_user  (name, phone, email)   VALUES (#{name}, #{phone}, #{email})")

    @Options(useGeneratedKeys=true,keyProperty="id",keyColumn="id")

    int insert(User user);


}


[if !supportLists]6.7.3. [endif]编写mybatis-config.xml配置文件


在test/resources创建mybatis-config.xml配置文件

[if !vml]

[endif]


--配置文件代码

"1.0"encoding="UTF-8"?>

  Config 3.0//EN""mybatis-3-config.dtd">



  "mysql">

     "mysql">

       "JDBC">

       "POOLED">

          "driver"value="com.mysql.jdbc.Driver"/>

          "url"value="jdbc:mysql://localhost:3306/sms"/>

          "username"value="root"/>

          "password"value="admin"/>

      

    


 


 


 

      "cn.zj.mapper.UserMapper"/>


 



[if !supportLists]6.7.4. [endif]测试代码

package cn.zj.test;

import java.io.IOException;

import java.io.Reader;


import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.junit.Test;


import cn.zj.mapper.UserMapper;

import cn.zj.pojo.User;


public class UserMapperTest

  {


    @Test

    public void insert(){



        try {

            //1.获得配置文件

            Readerreader= Resources.getResourceAsReader("mybaits-config.xml");

            //2.通过SqlSessionFactoryBuilder获得SqlSessionFactory对象

            SqlSessionFactoryBuilderbuild=new  SqlSessionFactoryBuilder();

            //获得会话工厂

            SqlSessionFactorysessionFactory = build.build(reader);

            //获得会话

            SqlSessionsession = sessionFactory.openSession();

            //获得操作接口的动态对象

            UserMappermapper = session.getMapper(UserMapper.class);

            Useruser=new User();

            user.setName("王五");

            int count = mapper.insert(user);

            System.out.println(count);

            //提交

            session.commit();

            session.close();

            System.out.println(user.getStuId());

        }catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

}



[if !supportLists]6.8.  [endif]第八步:整合SpringMVC与Mybatis


[if !supportLists]6.8.1. [endif]配置支持支持${key}获得Properties文件值

"classpath:db.properties"/>


"dataSource"class="com.alibaba.druid.pool.DruidDataSource"

    init-method="init"destroy-method="close">

   

    "driverClassName"value="${jdbc.driverClassName}"/>

    "url"value="${jdbc.url}"/>

    "username"value="${jdbc.username}"/>

    "password"value="${jdbc.password}"/>

   

    "maxActive"value="${jdbc.maxActive}"/>


[if !supportLists]6.8.2. [endif]整合Mybatis

    "sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">

        

         "dataSource"ref="dataSource"/>


        

         "typeAliasesPackage"value="cn.zj.ssm.pojo"/>


        

         "configLocation"value="classpath:mybatis-config.xml"/>


        

         "mapperLocations"value="classpath:cn/zj/ssm/dao/*Mapper.xml">

   

   

     "org.mybatis.spring.mapper.MapperScannerConfigurer">

       

        "sqlSessionFactoryBeanName"value="sqlSessionFactory"/>


       

        "basePackage"value="cn.zj.ssm.dao"/>

     


[if !supportLists]6.8.3. [endif]配置事物管理器

    "txManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        

         "dataSource"ref="dataSource"/>

   



   

    "txAdvice"transaction-manager="txManager">

        

        

             "find*"read-only="true"/>

             "get*"read-only="true"/>

             "query*"read-only="true"/>

             "select*"read-only="true"/>

             "list*"read-only="true"/>

            

             "*"/>

        

   


   

   

        

         "execution (* cn.zj.ssm.service..*.*(..))"id="pt"/>


        

         "txAdvice"pointcut-ref="pt"/>

        

   


[if !supportLists]7.  [endif]常见问题

问题1:已经下载到本地仓库的jar。Eclipse如何快速加入到Pom.xml文件里面

答:进入POM.xml对应的标签位置,右击选择增加依赖或者插件。

--选择增加的依赖

[if !vml]

[endif]

--选择需要的依赖

[if !vml]

[endif]



问题2:本地明明已经下载了对应的插件或者jar包。但Eclipse工具搜索不出来.

答:原因是缓冲问题。可以清一下仓库索引,操作步骤

--打开Maven仓库管理窗口

[if !vml]

[endif]

--刷新索引缓存

[if !vml]

[endif]


问题3:如何设置默认的JDK版本

   

   

       

       

           

           

                org.apache.maven.plugins

                maven-compiler-plugin

                3.5

               

               

                  

                   1.8

                  

                   1.8

               

           

       

   


问题4:设置打包安装跳过Junit的测试

       

           

                org.apache.maven.plugins

                maven-surefire-plugin

                2.18.1

               

                  true

               

           



[if !supportLists]8.  [endif]小结

Maven是什么?

Maven是一个项目构建工具

编译--测试-打包-安装完全使用Maven即可完成

Maven完全负责项目依赖包管理

Maven内置集成Tomcat插件


Maven相对手动构建项目优势

Maven有依赖仓库,基本上拥有市面上所有的jar包

更加方便jar包版本管理

互联网各大开源的项目基本都是使用Maven项目构建

你可能感兴趣的:(maven)