项目管理利器(Maven)——maven介绍及环境搭建
maven可以帮助我们更有效地管理项目,它也是一套强大的自动化构建工具,覆盖了编译、测试、运行、清理、打包和部署等整个项目周期。它提供了一个仓库的概念,统一帮助我们管理项目所依赖的第三方jar包,最大地避免了由于运行环境配置的不同而引起的问题。
1、目录结构:
boot目录:包含一个类加载器框架。
bin目录:包含mvn的运行脚本。
confing目录:包含配置文件。
lib目录:包含mvn使用的类库。
maven目录结构:
src:
-main
-java
-package
-test
-java
-package
2、配置环境变量:
M2_HOME maven主目录path 添加 ;%M2_HOME%\bin3、检测安装:cmd: mvn -v
============================================================================
mvn命令列表
1. mvn -v 版本。
2. mvn compile 编译。
3. mvn test 测试。
4. mvn package 打包。
5. mvn clean 清除maven生成的target目录。
6. mvn install 将生成的jar安装到本地仓库中。
maven编译代码的流程:
1. 执行mvn compile 命令编译java代码文件;
2. 如果发现代码中引用到了其他的包文件(jar包);
3. 首先回去核心配置文件pom.xml文件中去查找相应的配置依赖;如图dependency中
4. 根据配置依赖先去本地的仓库中查找jar包资源;(可以再相应的目录下用install创建)
5. 如果本地不存在,则会再去联网到maven的中央仓库中查找
=======================================================================================
项目管理利器(Maven)——自动建立目录骨架
Maven创建目录的两种方式:
1.archetype:generate 按照提示进行选择。
2.archetype:generate
-DgourpId=组织名,公司网址的反写+项目名称
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所在的包名
实例:
mvn archetype:generate -DgroupId=com.imooc.maven04 -DartifactId=maven04-demo -Dversion=1.0.0-SNAPSHOT -Dpackage=com.imooc.maven04-demo
==========================================================================
项目管理利器(Maven)——maven中的坐标和仓库
http://www.mvnrepository.com/ 这个是官网
1、坐标。
2、构件通过坐标作为其唯一标识。
3、仓库:
-本地仓库。
-远程仓库:maven-model-builder-3.3.3.jar\org\apache\maven\model,超级pom.xml文件,全球中央仓库地址:https://repo.maven.apache.org/maven2
-镜像仓库:/conf/setting文件:
<mirror>
<id>maven.net.cn</id>
<mirrorOf>central</mirrorOf>
<name>central mirror in china</name>
<url>http://maven.net.cn/content/groups/public</url>
</mirror>
4、修改本地仓库的位置:<localRepository>D:/Maven/repository</localRepository>Ps:一旦配置了镜像仓库,那么先前的所有配置都会转到镜像仓库中。 默认仓库位置.m2 repository,将settings.xml复制到更改后的本地仓库中,这样maven版本更新了,也不用修改settings.xml了
===========================================================================================
在eclipse中安装maven插件以及创建maven项目:
①在eclipse4.0及MyEclipse中就不需要安装maven插件,在window--preference中可以查看是否有maven插件,没有的话就需要安装Maven插件,直接复制Maven插件到eclipse安装目录中的dropins中,然后修改eclipse.ini,在这个文件里的512m后面添加-vm,换行,再添加jdk/bin/javaw.exe保存。
②eclipse是默认运行在jre之上的而maven需要jdk的支持,需要tools.jar在jdk/lib目录中,所以修改eclipse的JRE,java---Installed JREs--ADD--Next--把本地JDK的目录放到JRE home中,并设置Dmaven.multiModuleProjectDirectory=$M2_HOME--最后勾选JDK
③更改maven本地的配置Installactions---ADD---把本地的maven目录放进去
④修改setting的路径
会出现的问题:
1、如果版本不匹配 则mvn -v查看maven的jdk版本,然后在eclipse中配置当前使用的jdk
2、run as-->Maven build...-->在goals中compile(可以在此处使用其他的命令,如:package)---》run
若报-Dmaven.multiModuleProjectDirectory错误,则在选项-->java--》installed JRES 中设置jdk的参数,
添加上“-Dmaven.multiModuleProjectDirectory=$M2_HOME”
===========================================================================================
Maven的三个生命周期:
clean 清理项目:又分为三个阶段(pre-clean执行清理前的工作、clean清理上一次构建生成的所有文件、post-clean执行清理后的文件)
default 构建项目(最核心):compile、test、package、install都属于default
site 生成项目站点(根据POM的信息自动生成站点):
pre-site 在生成项目站点前要完成的工作、site 生成项目的站点文档、
post-site 在生成项目站点后要完成的工作、site-deploy 发布生成的站点到服务器上
如下:使用source插件将项目的源码打包,使用命令 clean package
==========================================================================================
项目管理利器(Maven)——Pom.xml解析
<groupId>反写的公司网址+项目名</groupId>
<artifactId>项目名+模块名</artifactId>
<version></version>//版本号0.0.1-snapshot,第一个0表示大版本号,第二个0表示分支版本号,第三个1表示小版本号
//snapshot快照,alpha 内部测试,beta 公测,Release 稳定,GA 正式发布
<packaging>默认:jar </packaging>
<name>项目描述名</name>
<url>项目地址</url>
<!-- 依赖列表 -->
<dependencies>
<!-- 依赖项 -->
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<type></type>
<scope>依赖的范围</scope>
<optional>设置依赖是否可选,默认是false</optional>
<!-- 排除依赖传递列表 -->
<exclusions>
<exclusion></exclusion>
</exclusions>
</dependency>
</dependencies>
<!-- 依赖的管理,一般定义在父模块中,由子模块去继承 -->
<dependencyManagement>
<dependencies>
<dependency></dependency>
</dependencies>
</dependencyManagement>
<!-- 对构建行为提供相应的支持 -->
<build>
<!-- 插件列表 -->
<plugins>
<plugin>
<!-- 指定坐标 -->
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</plugin>
</plugins>
</build>
<!-- 一般在子模块中指定所继承的父模块 -->
<parent></parent>
<!-- 模块列表 -->
<modules>
<module></module>
</modules>
=================================================================================
Maven 配置web项目
1:打开Eclipse
2:创建Maven项目,选择archetype-webapp模板
3:解决Servlet没有生命依赖的问题,在pom.xml中添加servlet的依赖,可以去中央仓库选择servlet版本
例如:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0-b01</version>
</dependency>
4:手工完善Maven约定好的目录结构
可以在navigator窗口中手动新建../src/main/java../src/test/java5:Project Explorer中更新项目
6:创建项目的输出目录
build path中设置输出路径output folder,确保每个module都输出在../tartet/classes目录中7:将Maven项目转换为Web项目
右击-属性-project facets-勾选动态模板(Dynamic Web Module)8:修改部署时配置去掉多余的配置项例如:测试代码
右击-属性-Deployment Assembly-删除多余的配置项(测试代码)9:使用package命令打包项目—使用jetty这个插件(在Maven的中央插件库中寻找)作为Web容器,在中央仓库查找jetty的plugin坐标配置到pom.xml中
pom.xml例子:
<build>
<finalName>webbproject-demo</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<!-- 在打包成功后使用jetty:run来运行jetty服务 -->
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>