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主要解决开发过程的两个问题:
- 项目文件jar包比较多,项目大小太大,使用maven构建项目,把依赖包分离,大大减小项目的大小.
- 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
- 创建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