Maven初探-如何快速入手一个项目

这已是一个工具的时代,而不是一个到处搜集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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

java.io.IOException 断开的管道【面试+工作】

查看采集数据的tomcat日志,习惯性的先翻到日志的最后去查看有没有异常的打印,果然发现了好几种异常信息,但是最多还是这个:

7093
来自专栏云计算教程系列

加固你的服务器,防止SSH攻击

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实...

3722
来自专栏python学习指南

Python网络_TCP/IP简介

本章将介绍tcp网络编程,更多内容请参考:Python学习指南 Socket是网络编程的一个抽象概念,通常我们用一个Socket表示"打开了一个网络连接",而...

3559
来自专栏程序员同行者

构建NTP时间服务器

2842
来自专栏伪君子的梦呓

下载 Jekyll,并使用它在本地搭建一个博客

1584
来自专栏张戈的专栏

Nginx-helper纯代码版,文章评论发布自动清理Fastcgi缓存

摘 要 张戈博客之前分享过Nginx开启fastcgi静态缓存加速的教程,文中也提到了WordPress对应的最佳配套插件:Nginx-Helper。本文分享...

3937
来自专栏FreeBuf

使用CMSTP绕过AppLocker的方法介绍

CMSTP是一个与Microsoft连接管理器配置文件安装程序关联的二进制文件。它接受INF文件,这些文件可以通过恶意命令武器化,以脚本(SCT)和DLL的形式...

1053
来自专栏CSDN技术头条

编译器LLVM3.8发布

LLVM编译器发布3.8版本了,主要是对以前版本各项性能的优化,以及对之前版本的升级。最新的发布日志可以查看这里。 这次发布的主要变化有: 这次版本要求...

1897
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使...

3860
来自专栏Hadoop实操

如何利用Dnsmasq构建小型集群的本地DNS服务器

上次我们介绍了如何在Windows Server中构建DNS服务器:如何在Windows Server2008搭建DNS服务并配置泛域名解析。

81410

扫码关注云+社区

领取腾讯云代金券