专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

别说你还不知道Maven,我这就告诉你

ins518 2024-10-26 12:14:09 技术文章 13 ℃ 0 评论

1.Maven是一个跨平台的项目管理工具,主要服务于Java平台的项目构建,依赖管理和项目信息管理

2.安装步骤:

1.解压安装文件

2.配置环境变量 MAVA_HOME

3.配置path与jdk一样

3.设置文件保存路径:

在安装文件的conf中,设置:<localRepository>D:\maven\repository</localRepository>

将settings.xml复制到D:\maven 路径下

4.Maven的规范约束

D:\example\src\main\java

D:\example\src\main\resources

D:\example\src\test\java

D:\example\src\test\resources

D:\example\target

D:\example\pom.xml

使用dos命令执行程序:

进入example目录,执行mvn clean compile 完成编译工作

cls:清空控制台

mvn test执行测试类

mvn package 将类进行打包

mvn clean install 将打好的jar包加入到Maven仓库中

pom.xml

<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>

<!-- 群组id:单位域名反写 -->

<groupId>cn.zr</groupId>

<!-- 项目ID -->

<artifactId>First</artifactId>

<!-- 版本号:用于描述开发过程的阶段性标识 -->

<version>0.0.1-SNAPSHOT</version>

<!-- 发布的包类型 -->

<packaging>jar</packaging>

<!-- 程序下载资源的地址 -->

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<!-- 依赖管理 -->

<dependencies>

<!-- 具体的依赖 -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.9</version>

<scope>test</scope>

</dependency>

</dependencies>

</project>

Maven坐标的主要组成:

groupId:定义当前Maven项目隶属项目

artifactId:定义实际项目中的一个模块

version:定义当前项目的当前版本

package:定义该项目的打包方式

依赖范围:

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.9</version>

<scope>test</scope>

</dependency>

<scope>test</scope>

依赖传递:

Two中使用One

Three中使用Two

称Two是Three的直接依赖,One是Three的间接依赖

列是第一直接依赖,行是第二间接依赖

可选依赖:

<optional>true</optional>,设置为true,则Third不知道Second使用了First,并且也不能使用First

控制当前资源是否向下传递,默认为false表示可以向下传递

<dependency>

<groupId>cn.zr</groupId>

<artifactId>First</artifactId>

<version>0.0.1-SNAPSHOT</version>

<optional>true</optional>

</dependency>

排除依赖:必须基于直接依赖中的间接依赖设置可选依赖为false

<dependency>

<groupId>cn.zr</groupId>

<artifactId>Second</artifactId>

<version>0.0.1-SNAPSHOT</version>

<!-- 设置排除 -->

<!-- 设置当前依赖是否使用间接依赖 -->

<exclusions>

<!-- 具体排除 -->

<exclusion>

<groupId>cn.zr</groupId>

<artifactId>First</artifactId>

</exclusion>

</exclusions>

</dependency>

依赖冲突:

如果直接与间接依赖中包含有同一个坐标不同版本的资源依赖,以配置顺序下方的版本为准(就近原则)

继承:

为了消除重复,把相同的配置提取出来,例如groupId、version等

父工程设置为被继承:<packaging>pom</packaging>

子工程继承父工程:

<parent>

<groupId>…</groupId>

<artifactId>… </artifactId>

<version>… </version>

<relativePath>../父工程项目名</relativePath>

</parent>

父工程统一管理子工程依赖版本:

<dependencyManagement>

<dependencies>

//添加公共依赖包

</dependencies>

</dependencyManagement>

子工程仅仅添加依赖包,无需添加版本,版本由父工程继承而来

为了进一步便于管理,将所有的版本管理设置在一起,设置为系统属性值

<properties>

<junit.version>4.9</junit.version>

</properties>

聚合:如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合

<modules>

<module>../子项目名称1</module>

<module>../子项目名称2</module>

<module>../子项目名称3</module>

</modules>

Sonatype Nexus

http://localhost:8080/nexus-2.1.2/index.html

Central:所有的公共的开源的jar

3rd party:Oracle驱动jar包

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表