javaweb入门之学习maven(01)

maven入门知识

一. maven简介

Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工
具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,
Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
Maven也可被用于构建和管理各种项目,例如C#,Ruby,Scala和其他语
言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基
金会主持的独立Apache项目。---摘自维基百科.


Maven项目使用项目对象模型(Project Object Model,POM)来配置。
项目对象模型存储在名为 pom.xml 的文件中。
以下是一个简单的示例:


<project>
  <!-- model version is always 4.0.0 for Maven 2.x POMs -->
  <modelVersion>4.0.0</modelVersion>
  
  <!-- project coordinates, i.e. a group of values which
       uniquely identify this project -->
  
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0</version>

  <!-- library dependencies -->
  
  <dependencies>
    <dependency>
    
      <!-- coordinates of the required library -->
      
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      
      <!-- this dependency is only used for running and compiling tests -->
      
      <scope>test</scope>
      
    </dependency>
  </dependencies>
</project>

二.maven主要解决开发过程的两个问题:

  1. 项目文件jar包比较多,项目大小太大,使用maven构建项目,把依赖包分离,大大减小项目的大小.
  2. jar包相互之间的依赖关系,版本冲突问题.maven会自动处理相互之间的依赖,减少了手动添加的繁杂.只需要在pom.xml文件添加需要的依赖即可.maven的依赖管理,就是管理jar包的一个过程.

三.maven的安装

1.http://maven.apache.org/download.cgi官网下载最新版本
mac选择下载:    apache-maven-3.5.0-bin.zip

2. 解压到本地,我的解压路径:/Users/xiaoq/Documents/maven

3. 在终端输入命令:vim ~/.bash_profile,在里面的文件插入:
export M2_HOME=/Users/xiaoq/Documents/maven/apache-maven-3.5.0
export PATH=$PATH:$M2_HOME/bin
进行保存退出esc->:wq

终端运行:source ~/.bash_profile
在运行:mvn -v
如果没有报错,表示maven配置成功

01maven位置.png
02maven配置.png

四.本地仓库配置和镜像代理配置

1.创建repository文件夹(我的配置位置:/Users/xiaoq/Documents/work/repository)

2. 找到maven解压文件下的conf文件下的settings.xml文件,打开进行编辑

4.1 配置本地仓库

<localRepository>/Users/xiaoq/Documents/work/repository</localRepository>

4.2 配置镜像(下载速度回很快,不然访问外网速度很慢,卡死),
mirros节点下添加

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror> 
      <id>uk</id>  
      <mirrorOf>central</mirrorOf>  
      <name>Human Readable Name for this Mirror.</name>  
      <url>http://uk.maven.org/maven2/</url> 
    </mirror>

    <mirror>
      <id>CN</id>
      <name>OSChina Central</name>
      <url>http://maven.oschina.net/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
      <id>nexus</id>
      <name>internal nexus repository</name>
      <!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
      <url>http://repo.maven.apache.org/maven2</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    

4.3 配置默认SDK版本,默认jse1.5,在profiles节点下添加:

<profile>
      <id>jdk-1.8</id>
      <activation>
          <activeByDefault>true</activeByDefault>
          <jdk>1.8</jdk>
      </activation>
      <properties>
          <maven.compiler.source>1.8</maven.compiler.source>
          <maven.compiler.target>1.8</maven.compiler.target>
          <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
</profile>

基本配置完成

五.maven目录结构规范

    project-name
                    |---src
                            |---main
                                |---java
                                     |---resources
                                |---webapp
                            
                            |test
                                |---java
                                     |---resources
03maven目录规范.png

六. maven常用的命令

maven 

compile: 编译命令,作用是将src/main/java下的文件编译为class文件并且输出到target目录下.

test: 测试命令,会执行src/test/java下的单元测试类

clean: 清除命令,删除target目录的内容

package: 打包命令,对于Java工程执行package命令会打成jar包,对于web工程打成war包

install: 安装命令,会把maven打成的jar包或者war包发布到本地仓库


运行命令可以发现,当执行命令的时候,前面的操作也会自动执行,比如执行test命令,会自动执行clean和compile命令.

clean->compile->test->package->install

七, maven和eclipse结合使用

高版本eclipse自带maven插件,只需要配置即可使用

7.1 eclipse配置maven安装路径

1.打开eclipse,选择preference,找到maven选项,选择installations,点击右边的add进行编辑,选择本地的maven路径
最后点击finish完成

04maven-eclipse.png

7.2 配置本地仓库,就是找到刚才建立的repository文件

选择maven选项的User Settings选项:
User Settings选择找到maven解压安装目录下的settings.xml文件位置(就是第四步编辑的文件)

Local Repository指向自己创建的repository文件的文字

05usersettings.png

7.3 显示maven repository窗口

eclipse->Window---show view ------other----------maven Repositories

重构索引:右键点击 Local Repositories,点击 Rebuild Index

06showview.png
07rebuildindex.png
  1. 创建hellomaven工程
File->New->Maven Project ,打钩create a simple project
->next->Group Id(公司域名com.it.companyname),Artifact Id(项目名称:hellomaven),Packaging选择war(web项目)->finish完成即可

08mavenpro.png
08mavenpro01.png
08mavenpro02.png

8.1 解决报错原因

8.1.1:
在webapp目录下创建文件夹WEB-INF,在WEB-INF下创建web.xml文件,并且写入web项目的约束.

09webxml.png

8.2 创建HelloServlet,访问路径设置为/hello

发现报错,这是缺少jar包导致

![10servlet02.png](http://upload-images.jianshu.io/upload_images/621082-82afaaf58fe8f1f2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

8.2.1 解决


打开pom.xml文件,选择Dependecies选项卡,点击add按钮,搜索servlet,选择jar包,点击jar包OK即可,等jar包下载完成即可解决,
如果发现下载完成还是报错,可以右点击工程名,选择maven->Update Project,再rebuild index

11addjar.png

在 HelloServlet类中的doGet方法写入:response.getWriter().write("Hello Maven!");

8.3运行工程

右击工程->run as ->选择maven build->输入tomcat7:run,等待服务器启动完成,如果不报错,进行访问路径

如果没有tomcat7,打开pom.xml加入下面设置,再次Update Project,rebuild index,运行命令:

  <build>
    <plugins>
            <plugin>  
                <groupId>org.apache.tomcat.maven</groupId>  
                <artifactId>tomcat7-maven-plugin</artifactId>  
                <version>2.1</version>  
            </plugin> 
    </plugins>
  </build>

11run.png
11run02.png

控制台会打印出访问路径,拷贝到浏览器,加上访问路径/hello,http://localhost:8080/hellomaven/hello如果不出意外,访问成功,至此,hellmaven构建完成.

12url.png
13success.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,200评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,526评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,321评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,601评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,446评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,345评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,753评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,405评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,712评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,743评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,529评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,369评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,770评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,026评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,301评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,732评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,927评论 2 336

推荐阅读更多精彩内容