关于Maven,我是如何理解并使用的

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: Maven是一个构建工具,这个构建工具能够帮助你更好的管理包的依赖、还能够为你实现项目的热部署、还能为你运行所有的测试用例、还能够为你项目的打包、发布、还能够实现项目的多模块构建。本文谈...

 

网络异常,图片无法展示
|
image.gif

image.gif

Maven是一个构建工具,这个构建工具能够帮助你更好的管理包的依赖、还能够为你实现项目的热部署、还能为你运行所有的测试用例、还能够为你项目的打包、发布、还能够实现项目的多模块构建。本文谈谈,我是如何理解Maven并使用的。

先说一说Maven到底能干什么呢,大概有以下这些作用:

1、很好的管理项目中包的依赖关系。

2、还能够实现项目的热部署(能够直接将项目发布到远程服务器)。

3、实现项目的打包、部署。

4、还能够运行所有的测试用例。

5、实现项目的多模块构建。

这篇文章,我会带着大家建立一个项目,系统地总结下Maven的知识和实践思路,希望对你有所帮助。内容分成以下几个部分:

    • Maven的使用
    • 使用命令来创建一个java工程
    • 工程目录解析
    • 打包
    • 构建一个web工程
    • Maven在MyEclipse/eclipse上的用法
    • 在Eclipse上创建Maven的JAVA工程
    • 在Eclipse创建Maven的Web工程
    • IDEA的使用
    • IDEA的使用技巧

    01 Maven的使用

    1、下载MAVEN包  

    1
    解压到指定的目录  G:/maven的目录下

    image.gif

    2、要使用命令的话首先要配置环境变量  

    1
    M2_HOME=G:\maven\apache-maven-3.6.02
       在path中进行引用3
       %M2_HOME%\bin

    image.gif

    3、测试

    ‍‍‍‍

    1
    在命令行输入 mvn  -version2
    3
    Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)4
    Maven home: G:\maven\apache-maven-3.5.0\bin\..5
    Java version: 1.8.0_101, vendor: Oracle Corporation6
    Java home: C:\Program Files (x86)\Java\jdk1.8.0_101\jre7
    Default locale: zh_CN, platform encoding: GBK8
    OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

    image.gif

    4、说明配置成功。

    02 使用命令来创建一个java工程

    1、首先创建一个存放工程的目录  

    1
    C:\Users\apple\Desktop\maven-project2、使用命令进入这个目录

    image.gif

    1
    cd /d C:\Users\apple\Desktop\maven-project3、使用如下命令

    image.gif

     
             

    image.gif

    1
    mvn archetype:generate    ------>获取创建的maven工程的模板2
    此时会出现2300多个构建工程的模板 默认选中的1311号模板(创建JAVA工程的模板)3
    直接enter4
    选中模板的版本号------->默认就可以5
    groupId:组id  这个一般和主包保持一致6
    artifactId:这个一般写项目的工程名字7
    选择版本号:------> 一般默认就好8
    写包名 ------>默认和groupId一致  默认就好9
    确认 : Y4、此时再去看这个目录就会多一个项目的文件夹

    image.gif

    03 工程目录解析

    目录解析如下:

    1
    --------------src                               //主要放的是JAVA  资源  测试文件2
    ------------------------------------main                //JAVA文件和运行的配置文件3
    ------------------------------------------------java          //这个放的是JAVA的配置文件4
    ------------------------------------test                 //放的是测试文件和测试需要的资源5
    -----------------------------------------------java          //测试的JAVA代码6
    ---------------POM               //项目自身的坐标 常量 项目的依赖包  项目依赖的组件

    image.gif

    项目坐标:

    image.gif

     
             

    image.gif

    1
    <groupId>com.qy.shopping</groupId>2
      <artifactId>MAVEN_01</artifactId>3
      <version>1.0-SNAPSHOT</version>4
      <packaging>jar</packaging>5
    6
      <name>MAVEN_01</name>7
      <url>http://www.example.com</url>8
    库的依赖:9
    <dependencies>10
    <dependency>11
      组的id12
          <groupId>junit</groupId>13
          项目的名字14
          <artifactId>junit</artifactId>15
          项目的版本号16
          <version>4.11</version>17
         当前这个库在什么时候有效18
          <scope>test</scope>19
        </dependency>20
      </dependencies>21
    22
    库:23
       本地库    远程库04 打包 
    1、首先使用命令进入工程的根目录   
    1
    C:\Users\apple\Desktop\maven-project\MAVEN_01\2
    mvn package ---------------------->生成目标文件2、进入目标文件1
    Java -jar  MAVEN_01-1.0-SNAPSHOT.jar 主类的全路径  运行出来
    05 构建web工程步骤  
    1、进入存放工程的目录   
    1
    cd /d C:\Users\apple\Desktop\maven-project2、获取所有的模板
    1
    mvn archetype:generate3、选择1316号模板 
    1
    输入1316------>后面的跟前面是一样的4、工程目录的解析   
    1
    -------------------------------src2
    -------------------------------------------main3
    ---------------------------------------------------------java            存放java文件的4
    ---------------------------------------------------------webapp         存放对外共享的资源5
    -------------------------------pom

    image.gif

    注意:

    每一种不同类型的工程在maven中对应了不同的模板

    java工程有java工程的模板

    web工程有web工程的模板

    Suite工程有suite工程的模板(当成父亲工程来用)

    06 Maven在MyEclipse/eclipse的用法

    1、下载MAVEN在Eclipse上的插件包  

    2、进入window----perfrence----输入maven

    3、installations----add添加本地的maven的根路径

    4、设置本地的仓库位置以及设置文件的位置  

    1
    注意:setting.xml文件的位置是在本地仓库的根路径下有个 setting.xml配置文件  实际上这个配置文件并不在这里  原本是在maven的加压路劲下的 conf目录里面  那么就将这个文件copy到库的根路径下2
    注意:库的位置默认是在c盘的用户目录下的.m2文件里面  这个路径是可以改的

    image.gif

    07 在Eclipse上创建maven的JAVA工程

    ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍1、右键---->新建

    1
    maven工程---->Create  a  simple project---->填写项目坐标(组的id、项目名字、打包的方式(jar)、依赖的版本)---->完成

    image.gif

    2、项目的目录解析  

    1
    rc/main/java:写JAVA代码的地方2
    src/main/resource:这个就是存放配置文件的地方3
    src/test/java:测试文件的地方4
    src/test/resoucre:测试文件存放资源的地方5
    target:这个是存放打包后的文件和资源的地方6
    Pom:存放的是(项目坐标、依赖包、依赖的组件、各种配置)

    image.gif

    3、编写项目并进行测试

    08 在Eclipse上创建maven的Web工程

    1、右键---->新建

    1
    maven工程----->next----->maven archetype webapp(模板)----->下一步(填写项目的坐标)------>finish(完成)

    image.gif

    2、目录解析

    image.gif

    1
    ----------------------------------------java Resource2
    ---------------------------------------------------------src/main/resource  :编写资源文件的地方3
    ---------------------------------------------------------src/man/java      :编写JAVA代码的地方4
    ---------------------------------------src/main5
    --------------------------------------------------------webapp:这个目录就相当于以前的Web-content/Web app目录

    image.gif

    3、导入web工程所需要的常用的包

     

    1
    <!--导入我们的Servlet的API -->2
        <dependency>3
          <groupId>javax.servlet</groupId>4
          <artifactId>javax.servlet-api</artifactId>5
          <version>3.1.0</version>6
          <scope>provided</scope>7
        </dependency>8
     9
        <!--导入我们jstl的标签库的包 -->10
        <dependency>11
          <groupId>javax.servlet.jsp.jstl</groupId>12
          <artifactId>javax.servlet.jsp.jstl-api</artifactId>13
          <version>1.2.1</version>14
        </dependency>15
     16
        <dependency>17
          <groupId>javax.servlet</groupId>18
          <artifactId>jsp-api</artifactId>19
          <version>2.0</version>20
          <scope>provided</scope>21
        </dependency>22
     23
        <dependency>24
          <groupId>org.apache.taglibs</groupId>25
          <artifactId>taglibs-standard-impl</artifactId>26
          <version>1.2.5</version>27
        </dependency>28
        29
        <!--引入junit类 -->30
        <dependency>31
          <groupId>junit</groupId>32
          <artifactId>junit</artifactId>33
          <version>4.12</version>34
          <scope>test</scope>35
        </dependency>

    image.gif

    4、创建我们的jsp文件  

    1
    <%@ page language="java" contentType="text/html; charset=UTF-8"2
        pageEncoding="UTF-8"%>3
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">4
    <html>5
    <head>6
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">7
    <title>Insert title here</title>8
    </head>9
    <body>10
     11
      this is index jsp page12
     13
    </body>14
    </html>

    image.gif

    5、测试(右键---->run on server)

    注意:

    默认创建的工程没有写JAVA代码的地方,所以需要手动创建

     

    1
    在下面的src/main上面右键----->new folder---->取名字java 完成  就自动跑上去了

    image.gif

    09 IDEA的使用

    1、首页菜单的描述

    1
    Create new project :创建一个新的项目2
      Import project:导入一个项目(IDEA的项目)3
      Open:打开一个项目4
      Check out from version control:表示从版本控制工具的仓库中检出一个项目

    image.gif

    2、创建一个java工程  

    1
    Create new project -------选择maven------选择create from archetype------next-----填写项目的坐标

    image.gif

    10 IDEA的使用技巧

    1、将快捷键设置成Eclipse的快捷键  

    1
    File------setting-----keymap----->选择Eclipse

    image.gif

    2、编码的设置

    image.gif

    1
    File-----setting-----输入encoding2
     3
    File encoding  ---->选择全局的编码和工程的编码3、字体的设置  
    1
    File------setting-----输入font-----找到font-----右侧就可以设置字体的大小
    4、快捷键的自定义     1
    File------setting-----Editor----live templates----->  +  ----->添加组(bobo1)----->完成2
                                            +  ----->live template ---->输入框输入  提示的简写------>在template text中输入要表达的内容3
     4
    选中创建好的模板----->右键  Change Context----->选中java(表示的是在java代码中进行提示)-----确定5、更改主题
    1
    File------------- setting------------------Appearance--------右边就有主题的选择(选择适合自己自己的主题)6、IDEA怎么安装maven      1
    File------------setting------------------输入maven-------->右侧进行配置7、Tomcat的安装
    1
    Run------Edit configrations-----左上角 +  ----------->找到Tomcat server-------->Local----->Application server(后面的浏览)------>Configration----->找到Tomcat的根目录----->完成

    image.gif

    最后的话

    毫无疑问,在Java生态里,Maven是最流行的软件项目自动构建工具。它已经取代Ant很久了,这得益于它在项目管理,依赖管理及解决方案方面提供了更简单而且是声明式的模型,而且它不仅有着良好定义的构建阶段(如编译和测试),同时还支持众多与构建,配置和部署代码相关的插件。

    友情提示:如果你是Maven新手或者缺乏使用经验,那么最好是先花点时间去学一下它的基本用法,而不是通过提示和技巧的方式来学习。

    <END>


    点个赞,证明你还爱我

    相关文章
    |
    6月前
    |
    Java Maven
    maven依赖原则以及jar包冲突
    该文介绍了Maven依赖原则:最短路径优先,申明顺序优先和覆写优先。当有冲突时,Maven选择路径最短的版本,按POM中声明顺序加载,并且子POM的依赖优先于父POM。解决冲突最佳方式是通过`mvn dependency:tree`检查依赖树并调整POM文件中的坐标顺序。
    133 2
    |
    5月前
    |
    存储 缓存 Java
    一文搞懂:什么是maven
    一文搞懂:什么是maven
    30 0
    |
    6月前
    |
    存储 XML Java
    【Maven技术专题】「入门到精通」教你如何使用Maven中引用依赖本地Jar包,并进行打包输出
    【Maven技术专题】「入门到精通」教你如何使用Maven中引用依赖本地Jar包,并进行打包输出
    552 0
    |
    IDE Java 程序员
    Maven基础学习---1、Maven的作用、什么是Maven
    Maven基础学习---1、Maven的作用、什么是Maven
    |
    Java Maven 开发者
    Maven - 依赖三大原则
    Maven - 依赖三大原则
    238 0
    |
    存储 Java 程序员
    【Maven相关知识 一】Maven基本概念和基本功能
    【Maven相关知识 一】Maven基本概念和基本功能
    141 0
    |
    Java 关系型数据库 测试技术
    Maven 核心原理
    Maven 核心原理 标签 : Java基础 Maven 是每一位Java工程师每天都会接触的工具, 但据我所知其实很多人对Maven理解的并不深, 只把它当做一个依赖管理工具(下载依赖、打包), Maven很多核心的功能反而没用上.
    1766 0
    |
    Java 程序员 Maven
    你竟然没用 Maven 构建项目?(下)
    一年前,当我和小伙伴小龙一起做一个外包项目的时候,受到了严重的鄙视。我那时候还不知道 Maven,所以搭建项目用的还是最原始的方式,小龙不得已在导入项目的时候花了很长时间去下载项目依赖的开源类库。 出于对我的尊重,小龙没有破口大骂,而是非常委婉地说了一句:“二哥,你好歹也有一定的知名度了,竟然没用 Maven 构建项目,真让我大开眼界啊。” 作为一名富有上进心的程序员,不能忍啊。借此机会,有必要隆重地向大家介绍一下 Maven 了。
    你竟然没用 Maven 构建项目?(下)
    |
    前端开发 Java 程序员
    你竟然没用 Maven 构建项目?(上)
    一年前,当我和小伙伴小龙一起做一个外包项目的时候,受到了严重的鄙视。我那时候还不知道 Maven,所以搭建项目用的还是最原始的方式,小龙不得已在导入项目的时候花了很长时间去下载项目依赖的开源类库。 出于对我的尊重,小龙没有破口大骂,而是非常委婉地说了一句:“二哥,你好歹也有一定的知名度了,竟然没用 Maven 构建项目,真让我大开眼界啊。” 作为一名富有上进心的程序员,不能忍啊。借此机会,有必要隆重地向大家介绍一下 Maven 了。
    你竟然没用 Maven 构建项目?(上)
    |
    前端开发 JavaScript Java
    Maven的基本概念(三)上
    Maven的基本概念(三)
    189 0
    Maven的基本概念(三)上