maven的安装
Apache软件基金会提供的项目自动化构建和项目管理软件。基于项目对象模型(缩写:POM)概念,Maven利用 一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
安装过程
1、下载网址: https://maven.apache.org/download.cgi.
点击链接下载;
2、配置环境变量:
系统变量:MAVEN_HOME = E:\maven\apache-maven-3.8.2
系统变量:path = %MAVEN_HOME%\bin
3、然后win+R 运行cmd 输入 mvn -version,如图所示则配置成功
配置settings文件
1、在E:\maven\apache-maven-3.8.2\conf下可以找到settings文件
maven默认的仓库:
2、修改路径
3、保存,在IDEA中创建新的Project
创建maven工程
全局
直接创建,无需勾选
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>myapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
</project>
groupId:公司所做的项目的名称
artifactId:模块的名称
version:版本号
groupId + artifactId + version = 坐标
编译代码
cd myapp
mvn compile
编译后产生target目录,里面存放的就是编译后的字节码文件
执行单元测试
mvn test
在pom.xml添加对junit的依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>
mvn clean
清除target
mvn package
打包
mvn install
发布到本地仓库中
修改本地仓库位置
默认位置在操作的系统的~/.m2文件夹中,修改方式如下:
- 取消mavenhome/conf/settings.xml配置文件中的注释的该行代码:
localRepository> /path/to/local/repo </localRepository- 将其中的路径修改为自己希望的路径
localRepository> J:/maven/repo </localRepository- 并将settings.xml文件拷贝一份到J:/maven目录中
maven查找依赖的顺序
本地仓库→ 私有仓库 → 中央仓库
scope
compile——编译(默认值,在编译、打包时使用)
provided——编译和测试时使用的依赖,打包时不加入,例如servlet-api.jar
runtime——运行时依赖,编译时不依赖,例如mysql.jar
test——只有测试时依赖,编译和打包时不使用,例如junit.jar
依赖传递和冲突
• 依赖级别相同时,在dependency前面的会使用
• 依赖级别不相同时,依赖路径短的会使用
• 依赖传递只会传递compile级别的包
• 排除依赖
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.2.31</version>
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
</dependency>
其他配置
<properties>
<junit.version>4.12</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
修改私有仓库地址
在项目中pom.xml:
<repositories>
<repository>
<id>local</id>
<name>nexus_server</name>
<url>http://192.168.1.100:8088/nexus/content/groups/public/</url>
</repository>
</repositories>
修改全局.m2/settings.xml:
<mirror>
<id>mirrorId</id>
<mirrorOf>*</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://xxxxx</url>
</mirror>
idea集成tomcat插件
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>