学习知识点
1.maven介绍
2.maven的安装与配置
3.maven目录结构
4.maven的常用命令
5.常见错误
一、什么是Maven
Maven是一个跨平台的项目管理工具,主要用于基于java平台的项目构建,依赖管理。
如图为项目构建的过程。
解决的项目的问题:
1、 如果有好几个项目,这好几个项目中,需要用到很多相同的jar包,能不能只建立一个仓库来解决这个
2、测试方法能不能全部运行呢?
3、怎么样把一个模块的功能放入到仓库中
二、maven的安装
1.jdk必须是1.6以上发版本2.从http://maven.apache.org/官网上下载最新版本的maven
3.解压maven压缩包找到bin目录赋值目录地址 比如我的目录地址:F:\work\course\maven\maven\bin 复制连接追加到环境变量的path路径中
4.在命令行中输入mvn -v检查是否成功,成功如下图:
5.设置本地连接库 找到maven解压文件下conf下面的settings.xml文件修改
<localRepository>F:/work/course/maven/mavenRepository/</localRepository>指定仓库的路径
6.eclipse中配置 window-->preferences-->maven-->installations配置maven路径然后配置maven下userSettings路径
三、maven目录结构
src/main/java 存放项目的java文件
src/main/resources 存放项目的资源文件,如spring,hibernate的配置文件
src/test/java 存放所有的测试的java文件
src/test/resources 存放测试用的资源文件
target 项目输出位置
pom.xml 文件
pom文件结构
project:表示一个工程
modelVersion:maven的版本号
groupId | 这是项目组的编号,这在组织或项目中通常是独一无二的。例如,每特教育 |
artifactId | 这是项目的ID。这通常是项目的名称。例如, |
version | 这是项目的版本。与 |
四、常用命令
mvn -version 查看maven的版本及配置信息
mvn archetype:create -DgroupId= DartifactId= 构建java项目
mvn archetype:create -DgroupId= DartifactId= -DarchetypeArtifactId=maven-archetype-webapp 创建web项目
mvn compile 编译项目代码
mvn package 打包项目
mvn package -Dmaven.test.skip=true 打包项目时跳过单元测试
mvn test 运行单元测试
mvn clean 清除编译产生的target文件夹内容,可以配合相应命令一起使用,如mvn clean package, mvn clean test
mvn install 打包后将其安装在本地仓库
mvn deploy 打包后将其安装到pom文件中配置的远程仓库
mvn eclipse:eclipse 将maven生成eclipse项目结构
mvn eclipse:clean 清除maven项目中eclipse的项目结构
mvn site 生成站点目录
mvn dependency:list 显示所有已经解析的所有依赖
mvn dependency:tree 以树的结构展示项目中的依赖
mvn dependency:analyze 对项目中的依赖进行分析,依赖未使用,使用单未引入
mvn tomcat:run 启动tomcat
五、常见错误
错误原因①:
pom.xml报错:web.xml is missing and <failOnMissingWebXml> isset to true
解决办法:
出现这个错误的原因是Maven不支持缺少web.xml的web项目
添加Web模块,对项目右键->Java EE Tools->GenerateDeployment Descriptor Stub,这样就在
src\main\webapp下面生成了WEB-INF文件夹和web.xml,问题解决.
错误原因②
'parent.relativePath' and 'parent.relativePath' points at wronglocal POM @ line 4, column 10
解决办法
在应用parent工程中加上<relativePath>../maven-parent/pom.xml</relativePath>
<parent>
<groupId>com.mavenTest</groupId>
<artifactId>maven-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../maven-parent/pom.xml</relativePath>
</parent>
错误原因③
Nocompiler is provided in this environment. Perhaps you are running on a JRErather than a JDK?
解决办法更换为自己本地的jdk即可。
六、eclipse新建maven项目
jar包括java普通类、资源文件和普通文件,在maven中即是打包src/main/java和src/main/resources资源文件夹下的所有文件。在打包的时候会自动生成MATA-INF文件夹,用于存储maven的pom信息和MANIFEST.MF文件。
war包含全部的web应用程序,即所有的java类,配置信息和jsp、js等静态资源。但是需要注意war引用war的时候会将应用war的资源全部拷贝到当前war的相同文件下,重名的文件会被替换
pom 可用于被继承