这已是一个工具的时代,而不是一个到处搜集JAR的年代,如果还在为搭建一个项目而到处找依赖,那你就彻底OUT了。下面,跟各位一起重温学习下Maven。

什么是Maven

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

它提供了三种功能:
1 依赖的管理:仅仅通过jar包的几个属性,就能确定唯一的jar包,在指定的文件pom.xml中,只要写入这些依赖属性,就会自动下载并管理jar包。
2 项目的构建:内置很多的插件与生命周期,支持多种任务,比如校验、编译、测试、打包、部署、发布...
3 项目管理:管理项目相关的其他内容,比如开发者信息,版本等等

Maven之前

做过开发的都知道,在没有使用Maven之前,比如搭建一个SSH框架的项目,我们分别要去 spring、hibernae、struts2官网下载一些JAR包,当然还要下载一些额外的比如日志管理log4j,连接池管理之类的JAR包。

当然某些JAR包有依赖报错的时候,还得手动一个个去添加。

程序构建的话,一般都使用ANT脚本(需要手动编写一系列的任务)进行打包。

最扯淡的就是框架的升级的时候,绝壁是最悲催的,这种重复性的劳动,真有损程序员的饭碗。

构建流程

1 工作空间,即我们的项目工程,这里面可能会放着pom.xml文件,这个pom.xml就是maven的配置文件。

2 本地仓库,本地仓库用于存放jar包,其实Jar包并不是直接放入工作空间的,它是存放在本地仓库,然后在执行发布打包的时候,添加依赖路径。

3 私服(Nexus):私库是使用者自己搭建的maven仓库,用于缓解频繁从外网下载jar包资源的压力,并且使用私库作为缓存层,也相对安全一些。

4 远程仓库: 中央仓库,一般来说私服里面的JAR都来自远程仓库,由于Maven中央仓库源自国外,可能会有下载龟速的情况,建议使用国内的 阿里、163或者开源中国的Maven库。

Maven配置

JDK安装配置(依赖)
Maven下载安装(修改仓库源)
Eclipse安装Maven插件(修改仓库源)

以上配置,在百度经验均有图文介绍,自行百度。

这里,提供一个阿里云Maven源:

<!--阿里云节点--><mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>

新建项目

开发工具:Eclipse

一、工程右键 New-Other-Maven-Maven Project

搜索webapp,选择最后一个,点击下一步。

二、填写 groupId 和 artifactId 点击finish。

三、这时候项目是有报错提示的,点击查看是index.jsp有错误。这是因为缺少servlet-api.jar

pom.xml中dependencies中加入以下依赖:

<!-- 版本自定义即可--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency></dependencies>

四、运行项目(jetty下)
pom.xml最终配置:

<project xmlns="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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itstyle.web</groupId><artifactId>HelloWord</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>HelloWord Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency></dependencies><build><finalName>HelloWord</finalName><plugins><plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>8.1.16.v20140903</version></plugin></plugins></build>
</project>

选择pom.xml右键Run As,以下界面:

选择DeBug,最终启动成功提示:

五、访问Demo

浏览器输入 http://127.0.0.1:8080/

HelloWord项目Demo下载:Maven初探-如何快速入手一个项目HelloWord.zip

小站:http://blog.52itstyle.com

Maven初探-如何快速入手一个项目相关推荐

  1. Java如何接手别人项目_程序员必备技能——怎样快速接手一个项目

    作为一个程序员,我们很少能从头到尾参与一个新项目的开发.如果你经常开发的是新项目,那你真是太幸福了. 更多的情况是半路进入一个项目组进行开发,或者是有其他同事离职了,之前由他维护的系统转交给你维护. ...

  2. 程序员怎么快速接手一个项目-接手项目指南

    目录 维护项目 最重要的事儿 接手方法:不变应万变 维护实用技巧: 项目的常见套路 熟悉项目的套路 vue 项目 快速梳理大型vue项目整体架构技巧方法总结 快速熟悉内部组件模块技巧方法总结 提升工作 ...

  3. *【思路】程序员怎么快速接手一个项目

    可能不管新手老手有些程序员,接手一个项目之后都会多少有些迷惘. 以下是本人总结出来的一点小心得,如果错误希望大家给我留言,一起讨论: 最重要的事儿 如果你总是看见代码多就发愁,看见代码脏乱差就诅咒埋怨 ...

  4. 分享:新入职时,如何快速熟悉一个项目的代码

    一.总体思路 昨晚是深夜撰文的阿菌,希望通过这篇文章和大家分享一下,初入职场时,如何才能快速地熟悉一个项目的代码. 说实话,感觉自己去年入职时上手项目的速度是比较慢的,可能是没有一些系统的方法论参考吧 ...

  5. 如何快速熟悉一个项目

    2019独角兽企业重金招聘Python工程师标准>>> 对IT人士而言,换一份工作或进入一个新的公司,往往意味着要熟悉一个新的开发环境,要快速了解新的项目.如何快速地熟悉项目代码,是 ...

  6. 程序员怎么快速接手一个项目

    可能不管新手老手有些程序员,接手一个项目之后都会多少有些迷惘. 以下是本人总结出来的一点小心得,如果错误希望大家给我留言,一起讨论: 最重要的事儿 如果你总是看见代码多就发愁,看见代码脏乱差就诅咒埋怨 ...

  7. 如何使用Maven的archetype快速生成一个新项目(解决生成项目目录不完整问题)...

    Maven的archetype Plugin可能大家都听过,但不一定都能很好地用好它.缺省地如果你使用 mvn archetype:generate  会从maven的Repository里查找所有支 ...

  8. 如何快速入手一个JavaWeb项目

    01. 从代码结构入手,搞清楚Java源码所在目录以及jsp代码所在目录. 02. 从Web.xml入手,搞清楚首页,上下文及配置情况. 03. 从lib目录里初步查看系统使用的框架和工具包. 04. ...

  9. iOS runtime实用篇:让你快速上手一个项目

    2019独角兽企业重金招聘Python工程师标准>>> 前言: 对于一个大项目而言,最烦恼的就是在众多界面难以找到对应的viewController,要改个东西都要花好长的时间去找对 ...

最新文章

  1. Gitlab VM安装过程
  2. Mysql多表查询(案例1)
  3. 小米手机怎么获取 ROOT 权限
  4. WebView 在 APP 中的使用
  5. python新手入门总结_初学python的操作难点总结(新手必看篇)
  6. 图片服务 - thumbor自定义检测
  7. java web项目中的根路径踩坑
  8. 并查集 路径压缩(具体解释)
  9. java创建数据库mysql数据库_用Java创建MySQL数据库
  10. 分享win10常用图标ico_png_html素材
  11. 学神经网络需要什么基础,深度神经网络怎么用
  12. 关于java爬虫手机壁纸图片网站
  13. 近世代数:同构、同态
  14. BFT最前线|首批由AI引发失业潮;ChatGPT 暂时关闭 Plus 付费;谷歌公布新一代 AI 超算及定制芯片第四代
  15. 详谈气象站的功能区别
  16. git 强制同步远端仓库
  17. 使用bigdecimal来保留小数
  18. 不是所有物联网平台都适合系统集成
  19. 关于BIOS升级的方法
  20. 运行项目报错 proxy error: could not proxy request...

热门文章

  1. 上海python好找工作吗_上海找个月薪一万的工作难吗
  2. (0065)iOS开发之工具条UIToolBar
  3. (0005) iOS 开发之WebViewJavascriptBridge的升级问题
  4. 学习excel的使用技巧一空格替换为0
  5. Codeforces Round #540 (Div. 3) A,B,C,D2,E,F1
  6. Django框架restful序列化组件get/post请求接口设计
  7. Bootstrap学习-其它内置组件
  8. PHP框架CodeIgniter之连接MS Sqlserver2014及URL Rewrite问题解决
  9. 是知当代之士、驰骛之曹,书读纵横,则思诸侯之变
  10. (转)Javascript标准DOM Range操作(1)