Maven
项目构建管理工具
作用
- 依赖管理
- 项目构建
- 分模块开发
Maven仓库和坐标
仓库
Maven存放jar包的位置
-
本地仓库:工程优先从本地仓库获取jar包,没有则从远程仓库获取
-
远程仓库:架设的第三方仓库,可开放可公司内部使用
-
中央仓库:Maven开发团队的仓库,http://repo1.maven.org/maven2/
-
阿里云镜像仓库配置
在maven安装目录conf/setting.xml
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
-
坐标
引用jar包的信息基础,唯一标识
- groupId:项目组织唯一的标识符,实际对应JAVA的包的结构 (一般写公司的组织名称 eg:com.itheima,com.alibaba)
- artifactId: 项目的名称
- version:定义项目的当前版本
例:在pom.xml中引入druid坐标
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
IDEA集成Maven
- 在设置-构建-构建工具-Maven配置当前项目Maven
- 在新项目设置-构建-构建工具-Maven配置配置新建项目Maven
Maven常用命令
- clean 用来清除编译后的文件(target文件夹里面的),一般用于清缓存
- compile 编译
- test 执行单元测试
- package 打包 (javaSe–>jar, javaweb–>war)
- install 1、把项目打包;2、安装到本地仓库
- install 也会执行compile test package
依赖管理
配置依赖坐标,自动进入jar
使用
项目、模块中pom.xml配置依赖坐标,在Maven官网查找坐标:http://mvnrepository.com/
例:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
依赖范围
- compile: 编译、测试、运行
- provided: 编译、测试有效
- runtime:测试、运行有效
- test:测试有效
tips:
1、Servlet,JSP 这类jar 需要加上provided , 因为部署到Tomcat里面. tomcat里面有, 如果没有加上provided , 可能会导致jar 冲突
2、 单元测试的 建议加上test
插件
Maven是一个核心引擎,提供了基本的项目处理能力和建设过程的管理,以及一系列的插件是用来执行实际建设任务。
使用
在pom.xml配置plugin标签
JDK编译插件
设置编译的JDK版本,默认1.5
- 使用properties方式
<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>
- 使用插件方式
<build>
<plugins>
<!--jdk编译插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
Tomcat服务器插件
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<!-- 指定端口 -->
<port>82</port>
<!-- 请求路径 -->
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
tips:中央仓库只有7.X版本
将第三方jar仿佛本地仓库
CMD命令导入仓库
mvn install:install-file -DgroupId=组名 -DartifactId=项目名 -Dversion=版本号 -Dfile=文件路径 -Dpackaging=打包方式
tips:
1、前三个参数为说明性参数,不影响实际导入
2、使用时配置依赖坐标与前三个参数相同即可
3、jar包中清单文件MANIFEST.MF一般会提供参数