Maven
Maven核心概念介绍
1、maven项目的结构
项目目录
src目录
main目录 主程序
java java类
resources 资源和配置
test目录 测试程序
java java类
resources 资源和配置
pom.xml 当前项目的配置
Maven常用命令
1、mvn compile 编译
将当前项目中所有的代码进行编译。 从*.java编译成*.class 。放在target\classes目录中
2、mvn package打包
将当前项目按照声明进行打包(jar或war) 。放在target\classes目录中
3、mvn clean 清除已经编译和打包的内容
target目录全部都删除
4、mvn test 运行所有测试类中的方法
坐标
groupid
atifactid
version
Maven的依赖范围与传递依赖
依赖的基本配置
groupid 公司名称
artifactId 项目名称
version 版本
type 默认jar,基本上不用声明
scope 依赖范围
exclusions
排除依赖关系
依赖范围
scope
compile 默认 编译、测试、运行有效
provided 编译和测试有效 servlet-api
runtime 运行时有效 jdbc
test 测试时有效 junit
system 编译、测试、运行有效,访问的是目录结构的jar文件,
排除依赖关系
当A.jar依赖于b.jar 1.0 版本
c.jar 依赖于b.jar 2.0 版本
这时只需一个b.jar 取高版本的 b.jar
需要在A.jar中排除 b.jar
<dependency>
<groupId>com.woniu</groupId>
<artifactId>a</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<groupId>com.woniu</groupId>
<artifactId>b</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.woniu</groupId>
<artifactId>c</artifactId>
<version>1.0</version>
</dependency>
继承及聚合
聚合
当A项目使用时,需要B 和 C
需要一个一个项目进行install , 安装到 本地仓库
可以使用聚合
在一个pom类型的项目中,将需要添加 B和C配置到这个pom项目中
<?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.woniu</groupId>
<artifactId>A</artifactId>
<version>1.0-SNAPSHOT</version>
<!--
如果实现聚合,当前项目类型需要声明为pom
-->
<packaging>pom</packaging>
<modules>
<module>../B</module>
<module>../C</module>
</modules>
</project>
继承
一个项目可以继承另一个项目
需要在子项目中添加配置
<parent>
<artifactId>Maven453</artifactId>
<groupId>com.woniu</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
可以在父项目中定义子项目添加jar 时,可以时默认版本
<?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.woniu</groupId>
<artifactId>Maven453</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>A</module>
</modules>
<!--
在父项目中声明jar的版本
-->
<properties>
<junit.version>4.12</junit.version>
</properties>
<!--
默认子项目中添加的jar的版本
-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>