作者:13
GitHub:https://github.com/ZHENFENG13
版权声明:本文为原创文章,未经允许不得转载。

前言

项目展示地址,点这里http://ssm-demo.13blog.site,账号:admin 密码:123456

下一篇文章开始,所有的项目源码都是与maven整合后的代码了,所以这一篇讲一讲maven。

简单介绍

我们看一下github上一些开源项目的目录结构,下图中有mybatis、netty、dubbo这些比较有影响的项目,在每个项目中都可以看到一个pom.xml文件,这就是maven的配置文件。

那么maven是什么呢?

百度百科中是这么说的

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

当然,继续看下去,还是会有很多专业名词,如果你是刚入门的话,可以暂时不去看这些,有时间可以慢慢研究。其实Maven是一个项目管理和整合的工具,并且为开发者提供了一套完整的构建生命周期框架。

使用感受

以前经常碰到的情况就是,往往一个跳槽来的新同事会问,“用过maven吗?怎么不用maven?”等问题,也是有些尴尬的搭不上话,偶尔在网上看代码的时候也会看到maven项目,但是不会用。那时候也就是因为刚入行,人比较懒吧,也不去看不去学。其实很多人一开始对于maven的印象,认为maven就是一个下载jar包的插件而已,我一开始也是一样,并不是太在意,上手了一段时间后,才体会到maven不仅仅是一个管理jar包依赖的工具。

按我的理解,maven有茫茫多的好处,比如:

  • 方便管理各种库文件依赖
  • 标准化构建流程
  • 提升开发者效率
  • 在持续集成中扮演重要作用。

对于开发效率和部署效率的提升真的是使我印象深刻,流程的标准化也可以减少很多人为因素可能带来的错误,当然,如果还没有上手过maven项目的来说,我的建议最好是赶紧将maven整合进项目中,以上的种种好处你也会慢慢体验到,而且网上教程资源那么多,完全不用担心无法入门,想要进阶的话也可以看看《Maven实战》这本书。

在这篇文章中我也只是简单讲一下自己对于maven的使用心得,总结的有些简单,其实是想告诉看到此文的你,像maven、gradle这些可以明显提升开发效率的工具真的要用到项目中,一个高效率的工作状态应该是我们每一个技术人的追求。

安装与整合

大致总结了以下步骤:

  • 1、下载官方文件
  • 2、解压并配置maven的环境变量
  • 3、执行maven -v 验证
  • 4、与开发软件整合

windows下maven的安装点这里

linux下maven的安装点这里

安装后就是与eclipse或者idea等开发软件整合的事情啦。

eclipse与maven整合点这里
idea与maven整合点这里

这些都是需要自己花点时间去研究的东西,而且网上教程也多,就直接放了感觉不错的教程的链接地址。

Maven仓库

由于默认的仓库地址是国外网址,会对下载速度有一定的影响,下载jar包时,如果没有将仓库设置为国内链接的话,可能会导致下载慢的情况,这种情况也很好解决,设置国内镜像或者国内仓库,当然也可以自己搭建私服,有时间的话会单独写一个搭建私服的文章,想了解的也可以自己先搜一下相关教程。

推荐一个搜索jar包的maven依赖时常用地址:http://mvnrepository.com/

几个国内可用的maven repository连接:
http://maven.oschina.net/content/groups/public/
http://maven.oschina.net/content/repositories/thirdparty/

首推的是阿里云的Maven仓库地址:

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

setting.xml文件

settings.xml文件是用来设置maven参数的配置文件,并且,settings.xml是maven的全局配置文件,而pom.xml文件是所在项目的局部配置。

settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。

关于setting.xml介绍可以看一下这篇文章

下面是一个settings.xml的示例文件:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库:本地存放jar包的文件夹位置 -->
<localRepository>/xx/xx</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<!--加速镜像,也可以考虑阿里云的maven镜像 -->
<mirrors>
<mirror>
<id>UK</id>
<mirrorOf>central</mirrorOf>
<url>http://uk.maven.org/maven2</url>
</mirror>
<mirror>
<id>net-cn</id>
<mirrorOf>central</mirrorOf>
<url>http://maven.net.cn/content/groups/public/</url>
</mirror>
<mirror>
<id>osc</id>
<mirrorOf>central</mirrorOf>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
<mirror>
<id>osc_thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>osc</id>
<activation>
<!--当前使用的远程仓库为osc-->
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>osc</id>
<!--当前使用的远程仓库地址 -->
<url>http://maven.oschina.net/content/groups/public/</url>
</repository>
<repository>
<id>osc_thirdparty</id>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>osc</id>
<url>http://maven.oschina.net/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>net-cn</id>
<repositories>
<repository>
<id>net-cn</id>
<url>http://maven.net.cn/content/groups/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>net-cn</id>
<url>http://maven.net.cn/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>

Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven的更多相关文章

  1. Spring+SpringMVC+MyBatis+easyUI整合基础篇(六)maven整合SSM

    写在前面的话   承接前文<Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven>,本篇所讲述的是如何使用maven与原ssm项目整合,使得一个普 ...

  2. Spring+SpringMVC+MyBatis+easyUI整合基础篇

    基础篇 Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简介 Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试 Spring+S ...

  3. Spring+SpringMVC+MyBatis+easyUI整合基础篇(八)mysql中文查询bug修复

    写在前面的话 在测试搜索时出现的问题,mysql通过中文查询条件搜索不出数据,但是英文和数字可以搜索到记录,中文无返回记录.本文就是写一下发现问题的过程及解决方法.此bug在第一个项目中点这里还存在, ...

  4. Spring+SpringMVC+MyBatis+easyUI整合基础篇(十一)SVN服务器进阶

    日常啰嗦 上一篇文章<Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建>简单的讲了一下SVN服务器的搭建,并没有详细的介绍配置文件及一些复杂的功能, ...

  5. Spring+SpringMVC+MyBatis+easyUI整合基础篇(十二)阶段总结

    不知不觉,已经到了基础篇的收尾阶段了,看着前面的十几篇文章,真的有点不敢相信,自己竟然真的坚持了下来,虽然过程中也有过懒散和焦虑,不过结果还是自己所希望的,克服了很多的问题,将自己的作品展现出来,也发 ...

  6. Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简述及技术选型介绍

    作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载. 萌芽阶段 很久之前就开始打算整理一下自己的技术博客了,由于各种原因(借口 ...

  7. Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简介

    很久之前就打算开始写一下自己的技术博客了,实在抽不出时间所以计划一直搁置了,最近项目进度渐渐缓了下来,不那么忙了,也因此开始筹备自己的博客.说到这次博客的主角,也是无心插柳找到的,来源于两年前自己写的 ...

  8. Spring+SpringMVC+MyBatis+easyUI整合基础篇(三)搭建步骤

    框架介绍: 主角即Spring.SpringMVC.MyBatis.easyUI,大家应该也都有所了解,概念性的东西就不写了,有万能的百度.   工作环境:       jdk 1.7       m ...

  9. Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试

    承接上文,该篇即为项目整合的介绍了. 废话不多说,先把源码和项目地址放上来,重点要写在前面. github地址为ssm-demo 你也可以先体验一下实际效果,点击这里就行啦 账号:admin 密码:1 ...

  10. Spring+SpringMVC+MyBatis+easyUI整合基础篇(九)版本控制

    日常啰嗦 还好在第一篇文章里就列好了接下来的主线及要写的知识点,不然都不知道要写什么东西了,开篇里已经列了基础篇要讲svn和git的知识点,所以这一篇就写一下版本控制. 项目实际效果展示在这里,账密: ...

随机推荐

  1. Django with uWSGI and nginx

    Reference:http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html Setting up Dja ...

  2. DevExpress控件学习总结(转)

    DevExpress控件学习总结   1.Navigation & Layout 1.1 Bar Manager 如果想在窗体或用户控件(user control)上添加工具条(bars)或弹 ...

  3. IOS Cell重用机制

    重用机制: -(UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *) ...

  4. 连锁不平衡LD

    http://wenku.baidu.com/link?url=Fr_C7J5F4KusZTpZJUfuVfh4Bpyb9BAY7IQhWAOYirQJW0Oz-X3fI5r41aPHiQR8ENn9 ...

  5. Linux下的文件目录结构详解

    Linux下的文件目录结构详解 / Linux文件系统的上层根目录 /bin 存放用户可执行的程序 /boot 操作系统启动时所需要的文件 /dev 接口设备文件目录,例如:had表示硬盘 /etc ...

  6. Java-io流入门到精通详细总结

    IO流:★★★★★,用于处理设备上数据. 流:可以理解数据的流动,就是一个数据流.IO流最终要以对象来体现,对象都存在IO包中. 流也进行分类: 1:输入流(读)和输出流(写). 2:因为处理的数据不 ...

  7. php生成PDF文件(FPDF)

    首先要下载FPDF http://www.fpdf.org/  附件可以在我的资源里下载http://yunpan.cn/c3RJ5BpPfX6dL  访问密码 f1f2 FPDF文档:http:// ...

  8. loadrunner:参数类型及其取值机制

    参数类型 参数名随意取,建议取通俗易懂的名字,下面我们重点介绍一下参数的类型. ●DateTime: 很简单, 在需要输入日期/时间的地方, 可以用DateTime 类型来替代. 其属性设置也很简单, ...

  9. [TPYBoard-Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板  一块 2.DS3231 ...

  10. react+redux构建淘票票首页

    react+redux构建淘票票首页 描述 在之前的项目中都是单纯的用react,并没有结合redux.对于中小项目仅仅使用react是可以的:但当项目变得更加复杂,仅仅使用react是远远不够的,我 ...