首页 > 其他分享 >Maven

Maven

时间:2022-09-02 21:12:34浏览次数:90  
标签:maven 依赖 项目 仓库 jar Maven

一、Maven简介

1.1在项目中如何导入jar包?

  • 下载jar包,(mvn)

  • 将下载的jar包拷贝到项目中 (WEB-INF/lib)

  • 选择jar文件--右键--Add as Library

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

  • 步骤多(相对)—―繁琐

  • 在不同的项目中如果需要相同的jar包,需要分别存储这个jar文件―—冗余、项目体积大。

  • 在不同的环境下可能因为jar文件版本不一致导致项目无法运行(重新配置)——移植性差

1.3项目生命周期

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

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

  • IDEA提供了一键构建项目的功能,但是如果我们需要自定义的生命周期管理,却没有现成的工具(清理缓存)

1.4 Maven简介

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

核心功能

  • 依赖管理

  • 生命周期管理

  • 聚A下程

二、Maven安装与配置

2.1 Maven下载

2.2 Maven安装

Maven是基于Java语言进行开发的,因此依赖JDK(建议JDK1.7+)

开箱即用:直接解压即可

目录结构:

  • bin存放指令文件(Maven提供了一个mvn指令)o boot包含了一个类加载框架的jar文件

  • conf 包含了Maven的核心配置文件settings.xmlo lib 存放了maven运行所需的jar文件

2.3配置环境变量

MAVEN_HOME 目录apache-maven-3.6.3

Path 增加%MAVEN_HOME%\bin

用mvn -version在窗口查看是否配置成功

三、Maven的项目结构

使用Maven进行项目还有一个好处:无论使用什么样的开发工具(eclipse/idea)项目的结构是统一的。

3.1 Maven的项目结构

fmwy (项目名称)

--src

--main(存放项目的源文件)

--java (存放java代码,相当于传统项目中的src目录)

--resources(存放配置文件和静态资源的目录,相当于传统项目的web目录)--test(存放项目的单元测试代码)

--pom . xml

3.2 pom.xml

POM Project Object Model,Maven可以根据pom文件的配置对此项目进行依赖管理;也就是说项目中需要依赖,直接在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.8.0.xsd ">
    
    <!--指定项目模型版本-->
    <modelVersion>4.0</modelversion>
    
    <! --指定项目的标识:G 企业标识A项目标识V版本-->
    <groupId>com. qfedu</groupId>
    <artifactId>fmwy< /artifactId>
    <version>1.0.B</version>
        
    <! --配置当前项目的依赖-->
    <dependencies>< /dependencies>
</project>

 

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

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

<!-- https : / /mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
</ dependency>

四、依赖管理

4.1 Maven依赖管理的流程

 

4.2 Maven仓库介绍

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

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

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

    • 公共仓库:除了中央仓库以外的第三方仓库都是公共仓库,例如aliyun(需要配置)

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

 

4.3 Maven仓库配置

在maven_home/conf/settings.xml中进行配置配置本地仓库

<localRepository>目录</localRepository>

配置公共仓库

<mirrors>
    <mirror>
        <id>nexus-aliyun< /id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http : / /maven.aliyun . com / nexus/content/groups/public</url>
    </mirror>
</mirrors>

五、项目生命周期管理

5.1生命周期介绍

项目构建的声明周期:项目开发结束之后部窖到运行环境运行的过程

  • 清除缓存

  • 检查

  • 编译

  • 测试(就会执行maven项目中test目录下的单元测试)

  • 打包(war . jar)

  • 安装(jar会被安装到本地仓库)

  • 部署(将项目生成的包放到服务器中)

5.2生命周期管理指令

在项目的根目录下执行mvn指令(此目录下必须包含pom.xml)

  • 清除缓存:mvn clean

  • 检查:mvn check

  • 编译:mvn compile

  • 测试:mvn test

  • 打包:mvn package

  • 安装:mvn install

  • 部署:mvn deploye

六、Maven的使用

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

6.3.1宣找依赖坐标

  • https:i//mvnrepository.com/

6.3.2添加依赖

  • 将依赖的坐标配置到项目的pom.xml文件dependencies标签中

<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.fpedu</groupId>
  <artifactId>maven-demo1</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <!--项目方式-->
  <packaging>war</packaging>
  <dependencies>
    <!--配置项目中依赖的坐标GAV-->
    <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.18</version>
        <scope>provided</scope>
    </dependency>
  </dependencies>
</project>

6.3.3依赖范围

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

  • test只在项目测试阶段引入当前依赖

<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>
  • runtime只在运行时使用(运行、测试运行)

  • provided 在(编译、测试、运行)

  • compile在(编译、测试、运行、打包)都引入

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

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

  • clean:清理缓存清理项目生成的缓存

  • validate:校验验证项目需要是正确的(项目信息、依赖)

  • compile:编译编译项目专供的源代码

  • test:测试运行项目中的单元测试

  • package:打包将项目编译后的代码打包成发布格式

  • verify:检查对集成测试的结果进行检查、确保项目的质量是达标的

  • install:安装将包安装到maven的本地仓库,以便在本地的其他项目中可以引用此项目(聚合工程)

  • deploy:部署将包安装到私服的仓库,以供其他开发人员共享

七、私服

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

  • 开发者需要依赖直接从私服下载

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

7.1私服搭建

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

7.1.1下载Nexus

7.1.4 登录Nexus

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

7.2配置私服

7.2.1在maven的settings.xml文件的servers标签中

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

7.2.2在maven的settings.xml文件的profiles标签中

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

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

7.2.3在maven的settings.xml文件的activeProfiles配置激活profile

<activeProfiles>
<activeProfile>nexus</activeProfile>< / activeProfiles>

标签:maven,依赖,项目,仓库,jar,Maven
From: https://www.cnblogs.com/wan-jie/p/16651230.html

相关文章

  • maven如何配置统一依赖多版本共存?
    本来可以通过在groupId后面加点来共存jar包的多版本,就像这样<dependency><groupId>cn.hutool</groupId><artifactId>hutool-core</artifactId></dependenc......
  • maven打包报错:Cannot find matching toolchain definitions for the following toolch
      报错信息: [ERROR]Failedtoexecutegoalorg.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain(default)onprojectmyfile:Cannotfindmatchi......
  • Apache Maven ToolChains的使用
    ApacheMavenToolChains的使用  简介Toolchains的介绍Toolchains的例子Toolchains支持总结简介Maven是java中非常有用和常用的构建工具,基本上现在大型的java项目都是M......
  • maven scope的汇总
    1、自建starter的一些关于maven的记录。可以减小jar包的大小,不做依赖传递<dependency><groupId>org.springframework.boot</groupId><artifactId>sprin......
  • JDK&Maven安装配置
     【JDK安装配置】 1.下载JDK:国内下载地址(华为镜像):https://repo.huaweicloud.com/java/jdk/ 根据电脑系统选择对应的包,windows现在一般是windows_x64. .exe......
  • Java开发学习(二十九)----Maven依赖传递、可选依赖、排除依赖解析
    现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用<dependency>标签来进行jar包的引入即可。<dependency>其实就是......
  • Maven 操作手册
    Maven操作手册1.基础命令释义说明命令打包跳过测试mvncleaninstall-DskipTests打包跳过测试mvncleanpackage-Dmaven.test.skip=true删除.last......
  • maven报错一站式解决方案
    maven报错一站式解决方案一、本地maven玩耍三部曲适配场景:项目需要的maven依赖本地仓库已经有了1.先确认项目引用默认的maven配置是否正确找到maven项目的父级pom.xml......
  • 修改Maven本地仓库的位置方法
    修改Maven本地仓库的位置方法一、关于Maven的配置:用过Maven的开发人员应该知道Maven可以通过配置conf文件夹下面的settings.xml文件来修改maven下载的包,默认是下在c盘......
  • Jenkins使用Maven构建Java项目
    Jenkins使用Maven构建Java项目什么是MavenMaven是一个项目管理和综合工具。Maven提供给开发人员构建一个完整的生命周期框架。开发团队可以自动完成该项目的基础设施建......