-
下载maven并解压。解压后如下:
- 配置环境变量。(类似于jdk配置)
计算机右键-->属性-->高级系统设置-->环境变量-->系统变量-->新建
变量名:M2_HOME,变量值为maven解压的地址(千万不要顺手在后面加分号)
在系统变量列表中找到系统变量path,在后面追加%MAVEN_HOME%\bin(注意前面有没有分号,没有分号加一个分号) - 测试配置是否成功。用win+R键打开dos命令行,输入mvn -version。显示maven信息,则配置成功。
maven的conf文件夹下setting.xml
Maven的配置文件pom.xml
pom.xml是maven的主要配置文件
基本:
<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/maven-v4_0_0.xsd">
<!-- 版本号应该为4.0.0,因为这是当前仅有的可以被Maven2&3同时支持的POM版本,它是必须的 -->
<modelVersion>4.0.0</modelVersion>
<!-- 基本设置 -->
<!-- 之前创建项目时候写的groupId,项目属于哪个组 -->
<groupId>test</groupId>
<!-- 之前创建项目时候写的artifactId,在该项目组中的唯一ID -->
<artifactId>Test_jj.tian</artifactId>
<!-- 提供组件的类型,如果packing不指定,则默认组件类型为jar,组件目前可选值有:war、ejb、pom、ear、 rar、 par、jar、maven-plugin -->
<packaging>war</packaging>
<!--版本号,它和groupId,artifactId一起,就像一个坐标,标记了仓库中的特定位置-->
<version>0.0.1-SNAPSHOT</version>
<!-- 项目的名称, Maven产生的文档用 -->
<name>Test_jj.tian Maven Webapp</name>
<!-- 项目主页的URL, Maven产生的文档用 -->
<url>http://maven.apache.org</url>
<!-- 项目的详细描述, Maven 产生的文档用。 当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,
就可以包含HTML标签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的
索引页文件,而不是调整这里的文档。 -->
<description> A maven project to study maven. </description>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<!-- 用于控制依赖的范围,有以下几种范围(test:仅用于测试;compile:默认值,编译依赖范围,对于所有的classpath都是有效的;) -->
<scope>test</scope>
</dependency>
</dependencies>
<!-- 构建过程的设置 -->
<build>
<finalName>Test_jj.tian</finalName>
</build>
</project>
Maven的一个有力的地方就在于对项目关联的处理;包括依赖、继承和聚合(多模块项目)。
1.继承。所有POM都继承于superPOM
<parent>
<!-- 被继承的父项目的groupId-->
<groupId>org.codehaus.mojo</groupId>
<!-- 被继承的父项目的构件标识符 -->
<artifactId>my-parent</artifactId>my-parent
<!-- 被继承的父项目的版本 -->
<version>2.0</version>
<!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。
Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),
然后在本地仓库,最后在远程仓库寻找父项目的pom。 -->
<relativePath>../my-parent/pom.xml</relativePath>
</parent>
2.依赖,一个<dependency>元素定义一个依赖。
<!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。 -->
<dependencies>
<dependency>
<!-- 依赖的groupId -->
<groupId>junit</groupId>
<!-- 依赖的artifactId -->
<artifactId>junit</artifactId>
<!-- 依赖的版本号 -->
<version>3.8.1</version>
<!-- 依赖的类型 -->
<type>war</type>
<!-- 依赖的分类器,使用不多,不了解 -->
<classifier></classifier>
<!-- 用于控制依赖的范围,有以下几种范围(test:仅用于测试;compile:默认值,编译依赖范围,对于所有的classpath都是有效的; provided:仅对编译和测试classpath有效;runtime:编译时不需要,尽在运行时需要; system:和provided类似,只是你需要提供JAR,组件不再在仓库中查找。) -->
<scope>test</scope>
<!-- 当scop配置为system时使用,其他情况下不使用 -->
<systemPath></systemPath>
<!-- 该配置告诉Maven你不想包含的该依赖的依赖(依赖传递的依赖)。 也可以使用通配符(*),表示排除所有传递的依赖。此元素主要用于解决版本冲突问题。 -->
<exclusions>
<exclusion>
<artifactId>spring-core</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
<!-- 可选依赖,设置为true,标识该依赖只对该项目有效,如果其他项目依赖该项目,该依赖将不会传递 -->
<optional>true</optional>
</dependency>
</dependencies>
3.聚合
目前没理解,理解了再补充上。
点击查看更多内容
2人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦