Maven

Maven

Maven核心概念介绍

1、maven项目的结构

项目目录

​ src目录

​ main目录 主程序

​ java java类

​ resources 资源和配置

​ test目录 测试程序

​ java java类

​ resources 资源和配置

​ pom.xml 当前项目的配置

Maven常用命令

1、mvn compile 编译

​ 将当前项目中所有的代码进行编译。 从*.java编译成*.class 。放在target\classes目录中

2、mvn package打包

将当前项目按照声明进行打包(jar或war) 。放在target\classes目录中

3、mvn clean 清除已经编译和打包的内容

target目录全部都删除

4、mvn test 运行所有测试类中的方法

坐标

​ groupid

​ atifactid

​ version

Maven的依赖范围与传递依赖

依赖的基本配置

groupid 公司名称

artifactId 项目名称

version 版本

type 默认jar,基本上不用声明

scope 依赖范围

exclusions

排除依赖关系

依赖范围

scope

​ compile 默认 编译、测试、运行有效

​ provided 编译和测试有效 servlet-api

​ runtime 运行时有效 jdbc

​ test 测试时有效 junit

​ system 编译、测试、运行有效,访问的是目录结构的jar文件,

排除依赖关系

image-20211106173044343

当A.jar依赖于b.jar 1.0 版本

c.jar 依赖于b.jar 2.0 版本

这时只需一个b.jar 取高版本的 b.jar

需要在A.jar中排除 b.jar

<dependency>
      <groupId>com.woniu</groupId>
      <artifactId>a</artifactId>
      <version>1.0</version>
      <exclusions>
        <exclusion>
          <groupId>com.woniu</groupId>
          <artifactId>b</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.woniu</groupId>
      <artifactId>c</artifactId>
      <version>1.0</version>
    </dependency>

继承及聚合

聚合

​ 当A项目使用时,需要B 和 C

​ 需要一个一个项目进行install , 安装到 本地仓库

​ 可以使用聚合

​ 在一个pom类型的项目中,将需要添加 B和C配置到这个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.woniu</groupId>
    <artifactId>A</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--
 		如果实现聚合,当前项目类型需要声明为pom
	-->
    <packaging>pom</packaging>

    <modules>
        <module>../B</module>
        <module>../C</module>
    </modules>
</project>

继承

一个项目可以继承另一个项目

需要在子项目中添加配置

    <parent>
        <artifactId>Maven453</artifactId>
        <groupId>com.woniu</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

可以在父项目中定义子项目添加jar 时,可以时默认版本

<?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.woniu</groupId>
    <artifactId>Maven453</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>A</module>
    </modules>

    <!--
        在父项目中声明jar的版本
    -->
    <properties>
        <junit.version>4.12</junit.version>
    </properties>
    <!--
        默认子项目中添加的jar的版本
    -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
posted @ 2021-11-06 18:30  后端小知识  阅读(23)  评论(0编辑  收藏  举报
返回顶端