- Maven的作用
(1)管理Jar包
增加第三方Jar包,管理Jar包之间的依赖关系
(2) 将项目拆分为若干个模块 - Maven概念:是一个基于Java平台的自动化构建工具,构建过程为:
清理:删除编译的结果,为重新编译做准备
编译:java–>class
测试:针对于项目中的关键点进行测试,亦可用项目中的测试代码去测试开发代码
报告:将测试的结果进行显示
打包:将项目中包含的多个文件压缩成一个文件,用于安装或部署。(java项目打包成jar包,web项目打包成war包)
安装:将打成的包放到本地仓库(Maven的仓库分为本地仓库、远程仓库(分为私服和中央仓库)、中央仓库镜像),通常下载一个jar,先在本地仓库下载;如果本地仓库不存在,则再联网到中央仓库去下载
部署:将打成的包放到服务器上准备运行
配置Maven环境变量需要先配置java的环境变量,因为它是基于java的。配置环境变量参照网上,环境变量配置完成后还需要配置本地仓库,本地仓库在Maven解压文件中的conf文件夹下settings.xml文件中,因网络原因有时还需配置阿里云的中央仓库镜像。


Maven的使用遵循约定优于配置的思想。Maven有约定的目录结构,在Eclipse中新建一个Maven project,随便写好Group id 和Artifact id后,点击完成,默认的目录结构如下:



-src
- main 程序功能代码
-java java代码
-resources 资源代码、配置代码
-test 测试代码
-java
-resources
-pom.xml 项目对象模型
Maven的GAV坐标:
| 项目 | 解释 |
|---|---|
| Group ID | 组织机构/顶层项目 |
| ArtifactID | 项目/库 |
| Version | 唯一发行版本号 |

Maven的常用命令:
编译时在本地仓库找依赖的包,如果没有就从中央仓库下载到本地仓库。
执行MVN,必须在pom.xml所在目录执行
mvn compile : 只编译main目录中的java文件,编译好放入target目录下
mvn test: 测试
mvn package: 打包命令,java-》jar,web->war;
mvn install:将开发的模块放入本地仓库,供其他模块使用。放入的位置通过gav决定。
mvn clean:删除target目录(删除编译好的)
Maven依赖的范围、依赖的有效性:compile(默认) test provided
在Eclipse中编写完pom.xml依赖后,需要maven-update project
如何在dependency里引用那些包,到https://mvnrepository.com网站中去搜,复制即可。

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.13.RELEASE</version>
</dependency>
排除依赖在dependency标签中:
<exclusions>
<exclusion>
<groupId>填写内容</groupId>
<artifactId>填写内容</artifactId>
</exclusion>
</exclusions>
maven项目之间的依赖:A项目依赖于B项目
- 需要将B项目install到本地仓库
- 然后在A项目中导入B项目的坐标
<dependencies>
<dependency>
<groupId>com.farm</groupId>
<artifactId>farm-core</artifactId>
<version>${wcp.version}</version>
<exclusions>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.farm</groupId>
<artifactId>wcp-quartz</artifactId>
<version>${wcp.version}</version>
<exclusions>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.farm</groupId>
<artifactId>wcp-parameter</artifactId>
<version>${wcp.version}</version>
<exclusions>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.farm</groupId>
<artifactId>wcp-lucene</artifactId>
<version>${wcp.version}</version>
<exclusions>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.farm</groupId>
<artifactId>wcp-authority</artifactId>
<version>${wcp.version}</version>
<exclusions>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.3</version>
</dependency>
<!-- 文档上传依赖jar_zhanghc_2015.8.29 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>

2万+

被折叠的 条评论
为什么被折叠?



