Maven的作用和定义

定义:

Maven是一个跨平台的项目管理工具,是Apache组织中的一个颇为成功的开源项目。Maven主要服务基于java的项目构建,项目信息管理和依赖管理。

作用:

1.Maven可以创建项目

2.Maven可以引入依赖的jar包

在Maven中有一个核心的概念--仓库,分为本地仓库和远程仓库。远程仓库又分为中央仓库,私服和其他仓库。

仓库具体了解:

如图所示:在美国有一个中央仓库,我可以创建一个本地仓库获取中央仓库的项目模板和依赖jar,在我每次创建项目的时候就可以直接从本地仓库获取,但是,由于中央仓库在国外,下载速度比较慢,这时候,国内知名企业创建了镜像仓库,他获取了中央仓库的信息,此时本地仓库下载镜像仓库的速度就会快很多。

 3.Maven发布管理项目

Maven可以将项目打包成开发人员指定的类型,用于部署到web容器,Maven还可以将项目打包到仓库中,方便项目的相互依赖。

Maven的安装和配置

1.下载Maven

官网:http://maven.apache.org/download.cgi

2.安装Maven

直接解压即可完成Maven的安装。

安装完成后注意:

安装完之后打开conf里面的setting.xml

设置本地仓库的路径,设置完成后,创建对应的文件夹。

配置镜像仓库

配置完成后记得保存,保存完之后关闭即可。

3.配置环境变量

右击此电脑,点击属性,打开高级系统设置,点击环境变量,新建系统变量,变量名为MAVEN_HOME,值为你的maven所安装的目录,注意,maven所安装的目录最好不要出现中文。

点击系统设置中的path,新建内容如下所示:

4.测试环境变量是否正确

打开cmd窗口,输入 mvn -v,如果能看到Maven的版本信息,则代表环境变量配置正确。

Maven的常用操作

替换idea捆绑的Maven

具体配置如下图所示:

设置完成之后点击apply,之后点击完成即可。

使用Maven进行项目构建

具体设置如图所示:

点击next出现如下图所示的窗口:

其中,

GroupId:组id,通常为基准包名,用于给多模块进行分组时使用。

ArtifactId:项目名,通常项目名不允许大写,也不要用驼峰命名法,多个单词组成中间用“-”隔开。

Version:版本(RELEASE,snapshot),前者为发布版,后者为快照版,发布版有源码,文档,注释等一系列完整的使用方法,快照版只有源码,可能甚至只有class。

继续点击next,注意使用的文件路径是否是你所设置的路径,如果是,点击next,finish

创建完成之后,等待加载pom文件,第一次时间比较久。如果pom文件有报错的可以右击,点击Maven,点击Reimport让它重新加载即可。

完成之后在src-main目录下创建java目录和resources目录。

设置目录的作用:点击file--setting--project-structure

具体配置如下图所示:

项目目录结构

src/main/java: 只允许写java类

src/main/resources:  只允许存放配置文件(xml,properties)

src/main/webapp: 存放jsp,资源文件(js,css,图片)

src/test/java:在maven项目中不允许编写main函数,一些都要使用junit进行单元测试

target: web项目打包,会形成这个目录,里面会有这个项目的打包文件,直接丢进tomcat即可启动

pom.xml:这个文件是maven项目中核心文件,如果要加入依赖库,都需要通过这个文件进行编辑才可以。

如果想要写main函数进行单元测试,需要进行如下步骤:

将java目录设置为测试目录

但是一般不用maven做测试类,这边只做了解即可。

创建完成后,需要复制一些依赖到pom文件中。

具体内容如下:

<dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version></dependency><!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.6.9</version></dependency><!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency><!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.2.2</version></dependency><!-- https://mvnrepository.com/artifact/commons-io/commons-io --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><!-- https://mvnrepository.com/artifact/commons-lang/commons-lang --><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.13</version></dependency><!-- https://mvnrepository.com/artifact/javax.servlet/jstl --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.2</version></dependency><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.25</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-aop --><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>3.2.13.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-beans --><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>3.2.13.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>3.2.13.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-core --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.2.13.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>3.2.13.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>3.2.13.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-tx --><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>3.2.13.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-web --><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>3.2.13.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>3.2.13.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/taglibs/standard --><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency>

复制到对应的依赖下,完成之后右下角出现的弹窗,点击第一个即可。

至此,Maven基本框架就已经搭建完毕,写一个小项目测试一下即可。

测试

在java目录下创建实体类,mapper接口,业务逻辑层,控制器,具体内容如下所示:

在web.xml文件中配置如下内容,其中需要注意的是:idea18版需要注意顺序,高版本不需要

在resources目录下创建mapper映射文件以及Spring配置文件

配置文件中需要注意释放静态资源以及json转码

jsp页面大致内容如下:

在执行web项目时,需要设置tomcat以及发布的内容

具体步骤如下所示:

点击edit

点击application应用

点击左上角加号,选择tomcat,点击local本地

点击之后进入如下界面,名字随便输入即可。

点击deployment,点击右上角加号,选择第一个

进入如下界面,选择war包,点击ok,随后点击apply,ok即可发布项目

【翠花学Maven】Maven详解相关推荐

  1. Maven打包详解(“There are test failures”)

    Maven打包详解("There are test failures") 以下操作都是在IDEA软件内进行的. 第一步:idea界面中选择右边的Maven projects 界面: ...

  2. (十)Maven依赖详解

    1.何为依赖? 比如你是个男的,你要生孩子,呸呸呸...男的怎么生孩子,所以你得依赖你老婆,不过也不一定咯,你也可以依赖其她妹子. 我们在平时的项目开发中也是同理,你需要依赖一些东西才能实现相应的功能 ...

  3. maven assembly详解

    依赖 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-asse ...

  4. Maven入门详解以及Eclisp的集成

    1.首先要安装Maven到操作系统上 Maven的下载页面:http://maven.apache.org/download.html Maven跟Tomcat很像,下载下来后直接解压在指定的目录就安 ...

  5. 分享本周所学——Transformer模型详解

    大家好,欢迎来到<分享本周所学>第二期.本人是一名人工智能初学者,最近一周学了一下Transformer这个特别流行而且特别强大的模型,觉得非常有收获,就想用浅显易懂的语言让大家对这个超级 ...

  6. 看漫画学知识:详解获得苹果推荐的4大要素

    随着移动游戏市场的竞争越来越激烈,相对应的推广成本也水涨船高,对于一款app来说,如果能获得苹果编辑的青睐,登上AppStore的推荐位的话,能大幅提升游戏的排名和收入.但是苹果的推荐也不是那么好拿的 ...

  7. 零零散散学算法之详解几种数据存储结构

    影响空间规模的几种数据存储结构 正文 所谓数据存储结构,就是数据的元素与元素之间在计算机中的一种表示,它的目的是为了解决空间规模问题,或者是通过空间规模问题从而间接地解决时间规模问题.我们知道,随着输 ...

  8. Maven使用详解视频课程——笔记(一)

    视频课程链接:http://edu.51cto.com/course/13014.html Maven项目管理工具,主讲:汤小洋 一.Maven简介 1. 什么是Maven ​ Apache Mave ...

  9. Maven入门详解与安装配置

    Maven: Maven出现前的问题: 假设你现在做了一个项目,项目中肯定要用到一些jar包,比如说mybatis,log4j,JUnit等,除了这些之外,你有可能用到你的同事开发的其他的东西,比如说 ...

  10. Maven Nexus详解

    一.简介 是种特殊的Maven仓库一般用于公司,比如三十个员工开发一个项目,需要每个人都联网去下载jar,每个人都很痛苦.此时公司可以搭建一个私服,让其中一人去私服下载jar,这样私服中就缓存了那些j ...

最新文章

  1. wiki多个文件一起导入_mac文件信息管理工具EagleFiler for Mac分享给大家
  2. EEGLAB处理脑电视频教程 part1-3
  3. 五十六、 白话讲解商业智能 BI、数据仓库 DW、数据挖掘 DM
  4. qt使用自带的日志输出实例输出日志时,在日志中显示行数
  5. SQLAPI报错:API client not set
  6. 【codevs1553】互斥的数,二分查找是个好东西
  7. AngularJS学习之旅—AngularJS 模块(十五)
  8. Cannot open the disk 'D:\win7-ie8\Windows 7 x64.vmdk' or one of the snapshot
  9. FCN数据预处理(code)
  10. webpack(三)使用 babel-loader 转换 ES6代码
  11. PDF文件转MOBI怎么转?在线操作轻松完成
  12. 使用UniBeast安装Hackintosh(黑苹果)
  13. php 电脑的右下角弹框,电脑右下角弹出广告的解决方法
  14. 【跨域】 关于跨域的一些知识整合
  15. 标题利用pwdump、lc7、hashcat工具破解用户口令(基于win7环境下)
  16. 在网页上嵌入微博--微博秀
  17. spidev0.0的正确打开方式
  18. 与大佬沟通,聊到四层代理和七层代理分别指的是什么这个问题时?会擦出什么火花呢
  19. 如何让谷歌浏览器支持迅雷下载
  20. Java任务项目-名片管理系统

热门文章

  1. 快速入门Web前端开发
  2. 2021年十大数据分析工具排行榜出炉
  3. 【Linux】用最形象的例子学习进程,从入门到深入
  4. 【UML统一建模思想】2万字超详细学习笔记(2)
  5. Wi-Fi当前的趋势及对IT和物联网的影响
  6. 23.打印由*号组成的三角形图案
  7. 递归函数的简单应用-第五个学生的年龄
  8. 分别用抽象类和接口实现四个动物类(鱼类、鸟类、爬行类、昆虫类)的类别和天赋
  9. Electron 去掉标题栏并设定可拖动
  10. Go语言安装和配置SDK