标签:
1. 简介
Maven是一个跨平台的项目管理工具,主要用于基于java平台的项目构建,依赖管理。
最大的特色:jar包管理
每一步执行,都会将这一步的前面都执行,比如执行打包package,那么前面的清理,编译,测试,报告都会执行
2.准备工作
2.1了解资源文件夹含义
src/main/java 存放项目的java文件
src/main/resources 存放项目的资源文件,如spring,hibernate的配置文件
src/test/java 存放所有的测试的java文件
src/test/resources 存放测试用的资源文件
target 项目输出位置
pom.xml 文件,简单理解,管理jar包的
2.2 仓库分类及调用顺序
中央仓库地址:
2.3 原理简介
插件在哪里,请看:..${mavenhome}\repository\org\apache\maven\plugins下的
于是就有了常用maven指令:
?mvn compile :编译源代码
?mvntest-compile :编译测试代码
?mvn test : 运行应用程序中的单元测试
?mvn site : 生成项目相关信息的网站
?mvn clean :清除目标目录中的生成结果
?mvn package : 依据项目生成 jar 文件
?mvn install :在本地 Repository 中安装 jar
?mvn deploy:将jar包发布到远程仓库
?mvneclipse:eclipse :生成 Eclipse 项目文件
2.4 Maven的特点(依赖,继承)
个人理解如下:
依赖相当于调用其他类(jar格式),需要将引用的项目打成jar格式
再使用dependency标签,就可以引用其他项目的的类了
而继承相当于引用了其他类的jar包(包括类本身),将继承的项目的打成pom格式,然后其他项目要继承时,使用parent标签即可,比如
附加冲突解决:
如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有b.jar这个项目2.0的版本了,这里就会造成冲突,解决的办法是去除a.jar包依赖b.jar这个项目的1.0版本的依赖关系,让项目使用我已有的包。使用exclusion标签就可以了
2.5 pom文件简单说明
<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/xsd/maven-4.0.0.xsd"> <!--pom 版本--> <modelVersion>4.0.0</modelVersion> <!--组id maven 用坐标概念来标识 jar包 坐标=groupId+artifactId+version --> <groupId>com.maven.demo</groupId> <!--构建物id :产品id--> <artifactId>HelloFriend</artifactId> <!--版本 :SNAPSHOT :测试版本 ,镜像版本 release :发行版本,最终版本--> <version>0.0.1-SNAPSHOT</version> <!--发布的是jar包 ,默认是jar包,也可以使war包等--> <packaging>jar</packaging> <!--项目名称 ,可写可不写--> <name>MavenDemo1</name> <dependencies> <!--jar包声明式依赖 依赖 junit4.9jar包--> <!-- <dependency> 用坐标来标识jar包: 坐标=groupId+artifactId+version <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> 依赖的jar包的使用范围 : 当测试时使用该jar包 test 、 compile(默认) <scope>test</scope> </dependency> --> <!--jar包声明式依赖 依赖 Hello.jar包 在依赖时,需要把那个依赖项目install放进Maven类库 继承时需要发布为pom格式 <packaging>pom</packaging> 再 install到类库中 * compile,缺省值,适用于所有阶段,会随着项目一起发布。 * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。 --> <dependency> <!--用坐标来标识jar包: 坐标=groupId+artifactId+version --> <groupId>com.maven.demo</groupId> <artifactId>Hello</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> </dependencies> <build> 资源路径 <sourceDirectory>src</sourceDirectory> <resources> <resource> <directory>src</directory> <excludes> 忽略java文件,应该的 <exclude>**/*.java</exclude> </excludes> </resource> </resources> </project> </build>附加属性说明:
3.Myeclipse2014创建Maven工程
基本步骤:
2.1从http://maven.apache.org/官网上下载最新版本的maven,配置环境变量
2.2 dos窗口下测试:mvn -c
2.3配置本地仓库
当没有配置本地仓库是,默认路径:
Default: ${user.home}/.m2/repository,修改setting文件
4.方式1 直接新建Maven project项目
准备工作:
选择Maven project
如果出现列表,选择Internal,等会就出来了
选择quickstart或者webapp都行,都是基于插件构建
最后完成即可,你会发现,这种方式生成的资源目录不完整,需手动完善,于是有了第二种方式
5.方式2:建立web Project 添加Maven
5.1 建立Maven规范的web项目
完成后出现的结构如下:完整的,如果你有红色的感叹号,估计jar冲突,在pom中删除之或者屏蔽
你会发现,webRoot哪去了,看src
5.2 建立符合web project习惯的Maven项目
完成效果如下:是不是很熟悉的结构
6.部署
先了解下如何测试:
你会发现没有compile指令,在build里面建立compile即可
6.1 方式1
直接部署就可以了
或者:
6.2方式2 war包部署
你可以Run as –Maven install—>打包成war包,然后把war包放进tomcat的webapps里面就可以了
或者:
这个方式个人觉得等价于tomcat的生产模式;只不过war包生成的路径不同而已
好,基本就介绍到这了
标签:
原文地址:http://blog.csdn.net/u011165335/article/details/51378746