maven了解

Maven的核心概念包括: POM、约定的目录结构、坐标、依赖、仓库、生命周期、插件和目标、继承、聚合。
 

POM、

        学习maven就是学习pom.xml的配置

约定的目录结构、

因为 :约定>配置>编码

 我们把具有上述特点的工程教maven工程

坐标(gav)

我们通过坐标找到  jar包  坐标信息包含(组织名,模块名称,版本号

groupId:组织名称,代码。公司,团体或者单位的标识。这个值常使用的公司域名的倒写。

artifactId:项目名称,如果groupId中有项目,此时当前的值就是子项目名。项目名称是唯一的。

version: 版本,项目的版本号,使用的数字。三位组成。例如 主版本号.次版本号.小版本号。

 然后我们去本地仓库看看

 当然了,如果你上传到库上,可已从对应的云镜像中下载下来。

依赖、scope


依赖范围表示:这个依赖(jar和里面类)在项目构建的那个阶段起作用。

使用:

我们在pom.xml文件下声明需要用的依赖jar包,+scope

 用的时候需要声明导包

然后对于同一项目下其他对象,我们使用的时候就可以不用导包或者,(项目没写)

 见下图可见性

常用的范围:(学不明白没关系,就用默认,导致的结果就是代码没优化,跟屎一样)

compile (默认就是这个范围)。
(1) main目录下的Java代码可以访问这个范围的依赖<
(2) test 目录下的Java代码可以访问这个范围的依赖心
(3)
部署到Tomcat服务器上运行时放在WEB-INF的lib目录下
例如:对Hello的依赖。主程序、测试程序和服务器运行时都需要用到。

test
(1) main目录下的Java代码不能访问这个范围的依赖<
(2) test 目录下的Java代码可以访问这个范围的依赖<
(3)
部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下
例如:对junit的依赖。仅仅是测试程序部分需要。

 

provided←
(1) main目录下的Java代码可以访问这个范围的依赖<+
(2) test 目录下的Java代码可以访问这个范围的依赖+
(3)
部署到Tomeat服务器上运行时不会放在WEB-INF的lib目录下
例如: servlet-api _在服务器上运行时,Servlet 容器会提供相关API,所以部署的时候不需要。

 


这个还有一个以来的传递性,类似于,类属性在父子继承中的关系,我不学

 甩个图,懂得都懂。

 依赖原则

 1 要用 log这个jar包,根据目录结构 的儿子 有,用儿子 2 的不用孙子 

 

 就是写声明的先后,

依赖的排除

 自定义标签

如果对于多个版本没法统一控制,我么可以通过一个变量批量控制

 ${spring.version}

使用到了spring-jdbc

仓库、

本地仓库,远程仓库,

不写笔记了你上b上一搜一堆解释的

Maven的生命周期、

主要分为

compile        编译项目的源代码

test-compile       编译测试源代码

test          进行单元测试,便于打包

package     打包成可发布格式

install     安装到本地仓库

插件和目标、

继承、

父工程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.jxl.mavendemo_1</groupId>
    <artifactId>hello_word</artifactId>
    <version>1.0</version>

    
    <!--  修改打包方式 -->
    <packaging>pom</packaging>

    <!--    配置-->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

子工程中要指定父工程

 <parent>
        <groupId>com.jxl.mavendemo_1</groupId>
        <artifactId>hello_word</artifactId>
        <version>1.0</version>
<!--        父工程pom.xml的相对路径-->
<!--        从当前pom位置去找-->
        <relativePath>../父工程/pom.xml</relativePath>
    </parent>

之后子工程写依赖可以不写版本

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>        
        </dependency>
    </dependencies>

指定父工程可以得到父工程所有的依赖

父工程不写<dependencyManagement>

子工程可以继承父工程的版本,子工程可以不写版本

聚合。

对于多个模块的开发使用,我们不用一个个打包成jar包放入本地仓库管理
 

用法:

找到另一个管理工程   项目总

<modules>
        <module>../组项目1</module>
        <module>../组项目2</module>
        <module>../组项目3</module>
</modules>

这样打包   项目总          组项目1,组项目2,组项目3可以一起打包在一起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值