2022-9-16 第七小组 学习日记 (day71)Maven

发布于:2022-12-14 ⋅ 阅读:(384) ⋅ 点赞:(0)

目录

(上午)

什么是Maven:

Maven的优缺点:

优点:

缺点:

Maven生命周期:

1.clean周期:

2.默认周期:

3.site周期:(站点)

Maven坐标

Maven常见的依赖范围

依赖的传递:

(下午)

下载

 安装/解压

配置环境变量

 测试

Maven仓库

 配置本地仓库

 配置阿里云的远程仓库

idea创建Maven项目

总结


什么是Maven:

译为“专家”、"内行“,是Apache基金会下的一个纯Java开发的开源项目。基于项目对象模型(缩写:POM)概念,主要用于基于Java开发的项目创建,依赖管理和项目信息管理。

Maven的优缺点:

优点:

  1. 对第三方依赖库进行统一的版本管理
  2. 统一项目的目录结构
  3. 统一软件构建阶段
  4. 便于项目升级,无论是项目本身升级还是项目使用的依赖升级。
  5. 有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译。
  6. maven有很多插件,便于功能扩展,比如生产站点,自动发布版本等
  7. 自动生成项目网站和报表

缺点:

  1. maven是一个庞大的构建系统,学习难度大
  2. maven采用约定优于配置的策略(convention over configuration),虽然上手容易,但是一旦出了问题,难于调试。
  3. 当依赖很多时,m2eclipse 老是搞得Eclipse很卡。
  4. 中国的网络环境差,很多repository无法访问,比如google code, jboss 仓库无法访问等。

Maven生命周期:

1.clean周期:

(清理)主要用于清理上一次构建产生的文件,可以理解为删除target目录

2.默认周期:

真正进行项目编译导报等工作阶段

  1. validate:验证项目是否正确
  2. compile:编译,编译项目的源代码*****
  3. test:测试,junit这些测试不应该要求代码被打包或部署
  4. package:进行打包。
    1. java工程------------.jar
    2. javaweb工程------.war
  5. verify:验证,对集成测试结果执行检察
  6. install:安装****
    1. 所有的项目都可以编程jar包*(依赖)
  7. deploy:部署,及那个最终的包赋值到远程储存库,和其他开发人员共享(maven私服)

3.site周期:(站点)

  1. site产生项目的站点文档
  2. site-deploy将项目的站点文档部署到服务器

Maven坐标

  1. GroupId:团体组织标识符,它一般情况下以创建这个组织的名称的逆向域名开头。
  2. ArtifactId:项目名。单独项目的唯一标识符。
  3. Version:版本

通过这三个向量来定位Maven仓库中其jar包所在的位置,把对应的jar包引入到工程中

Maven常见的依赖范围

  1. compile:默认。编译范围,编译,测试,运行都有效。参与打包,安装。
  2. test:测试范围,只有在test范围下才能用,不参与打包,安装。
  3. provided:编译和测试,不参与打包,安装。
  4. runtime:运行,只参与运行。
  5. system:废弃。系统。
  6. import:废弃。引入。

依赖的传递:

比如所demo01的项目中引入了mysql,servlet,fastjson,codec依赖,那我把demo01install到了我的本地仓库,或者是maven私服,如果其他成员通过GAV引入了我的demo01,demo01中的mysql,servlet,fastjson,codec会一起引入进来

下载

1.进入官网点击👉Maven官网👈下载文件

 安装/解压

下载解压之后:把文件夹放到没有中文的路径下:我直接放到了c盘下,例如:C:\Maven\

  1.  bin:存放了 maven 的命令
  2. boot:存放了一些 maven 本身的引导程序,如类加载器等
  3. conf:存放了 maven 的一些配置文件,如 setting.xml 文件****这个xml文件是核心
  4. lib:存放了 maven 本身运行所需的一些 jar 包

配置环境变量

右键属性 

新建一个变量:

变量名:MAVEN_HOME

变量值:Maven存放的路径(bin目录上一级)例如:C:\apache-maven-3.8.6-bin\apache-maven-3.8.6(这是我的路径)

 把MAVEN_HOME添加到Path系统变量中:%MAVEN_HOME%\bin

 测试

打开cmd输入:mvn -v

 出现以下内容证明安装成功

Maven仓库

Maven中的仓库是用来存放maven构建的项目和各种依赖的(Jar包)。
 Maven的仓库分类:

  1. 本地仓库: 位于自己计算机中的仓库, 用来存储从远程仓库或中央仓库下载的插件和 jar 包,
  2. 远程仓库: 需要联网才可以使用的仓库,阿里提供了一个免费的maven 远程仓库。
  3. 中央仓库: 在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中 央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件

 配置本地仓库

在maven安装目录中,进入 conf文件夹, 可以看到一个settings.xml 文件,我们在这里配置

 

 配置阿里云的远程仓库

原来的库是连接外国的库,连不上,所以要改成咱们阿里云的镜像仓库 

 代码:  

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

idea创建Maven项目

接下来就可以去idea创建一个maven的项目了

首先一定要选中Maven,创建一个Maven的项目

 打开IDEA 选择File --> Settings --> 搜素maven,就会看到如下界面,并修改路径

 之后工程就是这个样子,如果不是,请重新开启idea

 maven导入依赖:在pom.xml文件里,例如导入mysql\junit\servlet等包

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

点击刷新,他就会自动在阿里云镜像仓库里下载下来存到本地的仓库中
 

总结

        今天学的Maven是新的架构知识,作用就是通过它连接jar包,调用起来更方便、效率更高