Maven配置

一、Maven简介

1.1在项目中如何导入jar包

  • 下载jar包(MVN)
  • 将下载的jar包拷贝到项目中(WEB-INF/lib)
  • 选择jar文件--右键--add as library

1.2传统导入jar包的方式存在的问题

  • 步骤多
  • 不同项目中如果需要相同的jar包,则需要分别存储
  • 不同环境下可能因为jar文件版本不一致导致项目无法运行(重新配置)

1.3项目生命周期

项目从编译到运行的整个过程

完整的生命周期:清理缓存--校验--编译--测试--打包--安装--部署

  • IDEA提供了一键构建项目的功能,如果需要自定义项目周期管理,没有现成的工具

1.4Maven简介

Maven是一个基于项目对象模型(POM)进行项目的依赖管理、生命周期管理工具软件

核心功能

  • 依赖管理
  • 生命周期管理
  • 聚合工程

二、Maven安装及配置

2.1Maven下载

2.2Maven安装

开箱即用:直接解压即可

  • 解压(D:/Application/Maven)
  • 目录结构
    • bin 存放指令文件(Maven提供了一个mvn指令)
    • boot 包含了一个类加载框架的jar文件
    • conf 包含了Maven的核心配置文件settings.xml
    • lib 存放了对Maven运行所需的jar文件

2.3配置环境变量

  • MAVEN_HOME D:\Application\Maven
  • Path 增加 %MAVEN_HOME%\bin

三、Maven的项目结构

Maven进行项目管理:无论使用什么开发工具项目(Eclipse/IDEA)的结构是统一的

3.1Maven的项目结构

项目名称
--src
	--main(存放项目的源文件)
		--java(存放java代码,相当于传统项目中的src目录)
		--resources(存放配置文件和静态资源的目录,相当于传统项目的web目录)
	--test(存放项目的单元测试代码)
--pom.xml

3.2pom.xml

POM(Project Object Model)Maven可以根据pom文件的配置对此项目进行依赖管理,也就是说项目中需要依赖,直接在pom.xml进行配置即可

<?xml version="1.0" encoding="utf-8"?>
<project>
    <!-- 指定项目模型版本 -->
	<modelVersion>4.0</modelVersion>
    <!-- 指定项目标识,G 企业标识 A 项目标识 V -->
    <groupId>com.letian.study</groupId>
    <artifactId>maven</artifactId>
    <version>1.0.0</version>
    <!-- 配置项目依赖 -->
    <dependencies>
    	
    </dependencies>
</project>

如果需要在当前项目中添加依赖,在pom.xml文件中进行依赖配置即可

配置依赖找到依赖的坐标,添加到dependencies

<!-- mysql-connector -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
</dependency>

四、依赖管理

4.1Maven依赖管理的流程

4.2Maven仓库介绍

  • 本地仓库就是本地计算机上的某个文件夹(可以是自定义的任何文件夹)

  • 远程仓库就是远程主机上的jar文件仓库

    • 中央仓库Maven官方提供的仓库,包含了所需的一切依赖(免配置)

    • 公共仓库除了中央仓库以外的第三方仓库都是公共仓库(需配置)

    • 私服企业搭建的供内部使用的Maven仓库

    • Maven仓库

4.3Maven仓库配置

  • 在maven_home/conf/settings.xml中配置

配置本地仓库

<localRepository>D:\Documentation\repo</localRepository>

配置远程仓库

 <!-- 阿里云镜像 -->
<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

五、项目生命周期管理

5.1生命周期介绍&指令

项目构建的生命周期:项目开发结束之后部署到运行环境的过程

  • 清理缓存(mvn clean)
  • 检查(mvn check)
  • 编译(mvn compile)
  • 测试(mvn test)(就会执行Maven项目中test目录下的单元测试)
  • 打包(mvn package)(war、jar)
  • 安装(mvn install)(jar会被安装到本地仓库)
  • 部署(mvn deploye)(将项目生成的包放到外部服务器中---私服)

5.2IDEA关联Maven

说明:IDEA本身集成了Maven,考虑到IDEA和Maven的兼容性,不建议配置比默认版本更新的版本,建议使用IDEA自带的Maven

5.3使用IDEA创建Maven项目

5.3.1Java项目

创建Java项目

5.3.2Web项目

  • 创建Web项目
  • 设置打包方式
  • 完善Web项目结构
  • 配置Web组件

5.4在IDEA中使用Maven进行依赖管理

5.4.1查找依赖坐标

5.4.2添加依赖

  • 将依赖的坐标配置到项目的pom.xml文件dependencies标签中
<?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.le_tian.study</groupId>
    <artifactId>create-web</artifactId>
    <version>1.0.0</version>
    <!--  打包方式  -->
    <packaging>war</packaging>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <!-- 添加依赖 -->
    <dependencies>
        <!-- junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

5.4.3依赖范围

在通过dependency添加依赖时,可以通过scope标签配置当前依赖的适用范围

  • test只在项目测试阶段引入(编译、测试)
  • runtime只在运行时使用(运行、测试)
  • provided在(编译、测试、运行)引入
  • compile在(编译、测试、运行、打包)引入

5.5在IDEA中使用Maven进行项目构建

5.5.1Maven项目构建生命周期说明

  • clean清理缓存 清理项目生成的缓存
  • validate校验 验证项目需要是否正确(项目信息、依赖)
  • compile编译 编译项目中的源代码
  • test测试 运行项目中的单元测试
  • package打包 将项目编译后的代码打包成发布格式
  • verify检查 对集成测试的结果进行检查、确保项目质量是达标的
  • install安装 将包保存到Maven的本地仓库,以便在本地的其他项目中可以引用此项目(聚合工程)
  • deproy将包安装到私服的仓库,以供其他开发人员共享

5.5.2IDEA进行生命周期管理

  • 可视化

六、私服

企业搭建供内部使用的Maven仓库

  • 开发者需要依赖直接从私服下载
  • 私服可以实现企业内部依赖的共享:当企业开发了一个通用插件(jar),可以发布到私服,连接到私服的其他开发者就可以共享这个插件

6.1私服搭建

可以通过专门的Maven仓库管理软件来搭建私服(如:Apache Archiva、Nexus)

6.1.1下载Nexus

6.1.2解压Nexus

6.1.3安装并运行Nexus

  • 进入到%NEXUS_HOME%nexus-3.25.0-03\bin目录
  • 管理员身份打开命令行,执行指令
    • nexus install
    • nexus uninstall
    • nexus start
    • nexus stop

6.1.4登录Nexus

私服管理器登录地址:http://localhost:8081/nexus

默认账号:admin

默认密码:admin123

6.2配置私服

6.2.1在Maven的settings.xml文件的servers标签中

<!--  配置连接私服所需的账号和密码  -->
    <server>
      <id>nexus-public</id> <!--  nexus的认证id  -->
      <username>repouser</username> <!--  nexus中的用户名和密码  -->
      <password>repopwd</password>
    </server>

6.2.2在Maven的settings.xml文件的profiles标签中

repositorypluginRepository的id子标签的值,要和上面配置的server的id子标签的值一致

<profile>
	<id>nexus</id>
    <repositories>
    	<repository>
        	<id>nexus-public</id>
            <name>Nexus Release Snapshot Repository</name>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>nexus-public</id>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
    </pluginRepositories>
</profile>

6.2.3在Maven的settings.xml文件的activeProfiles配置激活profile

<activeProfiles>
	<activeProfile>nexus</activeProfile>
</activeProfiles>
posted @ 2023-04-20 10:43  Byron_Zora  阅读(125)  评论(0编辑  收藏  举报