Maven 杂记

这篇具有很好参考价值的文章主要介绍了Maven 杂记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- gavp属性 -->
    <!-- 不会改变 -->
    <groupId>per.mjn</groupId>
    <artifactId>maven-pom-dependenies-04</artifactId>
    <!-- 构建过程 - 部署 - 修改 -->
    <version>1.0.1</version>
    <!-- maven工程的打包方式 java jar 【默认值】 web war 不打包 pom -->
    <packaging>jar</packaging>

    <!-- 声明版本号 -->
    <properties>
        <!-- 声明一个变量!声明完变量后,在其他位置可以引用 ${jackson.version}
            注意:声明的标签建议两层以上命名!version 1.15.2 推荐:技术名.version
        -->
        <jackson.version>2.15.2</jackson.version>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!-- 第三方依赖信息声明
        dependencies - 项目依赖信息的集合
            dependency - 每个依赖项
            [gav]      - 依赖的信息,就是其他maven的工程 [jar]

        扩展:
            1. 提取版本号,统一管理
            2. 可选属性scope
                scope 引入依赖的作用域
                默认:compile    作用范围 main包 test包 打包和运行
                     test       作用范围 test包    例如 junit @Test
                     runtime    main包不使用  test包不使用  打包和运行的时候使用
                                比如 mysql  Class.forName(com.mysql.cj.jdbc.Driver)
                     provided   main包中使用,test包中使用   打包和运行不使用
                                比如,servlet HttpServlet  Tomcat 提供了servlet
     -->
    <dependencies>
        <!--
            依赖传递:导入依赖,会自动导入依赖的依赖!(compile dependencies)
                    简化依赖的导入,确保依赖的版本无冲突
            依赖冲突:发现已经存在依赖(重复依赖)会终止依赖传递!避免循环依赖和重复依赖的问题

            依赖冲突发生的场景:重复依赖!!
                A -> B 1.0
                C -> B 2.0

                A
                C 传递依赖 B

            依赖冲突的解决原则:
                第一原则:谁短谁优先! 此处指引用路径的长度
                    A - C - B 1.0
                    F - B 2.0           A   C   F   B 2.0
                第二原则:谁先引入谁优先!此处指dependencies声明的先后顺序
                    A - B 1.0
                    F - B 2.0
                    A - F - B 1.0

            练习:
                依赖引用关系:
                前提:
                    A 1.1 ->B 1.1 ->C 1.1
                    F2.2 ->B 2.2
                pom声明:
                    F 2.2
                    A 1.1
                    B 2.2
                最终引入的依赖有:
                    F 2.2
                    A 1.1
                    B 2.2
                   不会引入 C 1.1 只要发生冲突了,后续的依赖传递全部终止!
         -->
<!--        <dependency>-->
<!--            &lt;!&ndash; 定位信息 gav 三个属性是必须的 &ndash;&gt;-->
<!--            <groupId>com.fasterxml.jackson.core</groupId>-->
<!--            <artifactId>jackson-core</artifactId>-->
<!--            <version>${jackson.version}</version>-->
<!--        </dependency>-->

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

父工程pom.xml中的一些注意点文章来源地址https://www.toymoban.com/news/detail-856790.html

<?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>per.mjn</groupId>
    <artifactId>maven-pom-parent-06</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 父工程不打包,也不写代码 -->
    <packaging>pom</packaging>

    <!-- 要统一管理哪些子工程的 artifactId -->
    <modules>
        <module>shop-user</module>
        <module>shop-order</module>
        <module>shop-chat</module>
    </modules>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!-- 声明版本信息 -->
    <!-- 导入依赖!此处导入,所有子工程都有相应的依赖! -->
    <dependencies></dependencies>
    <!-- 声明依赖,不会下载依赖!可以被子工程继承版本号 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.15.2</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.28</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

到了这里,关于Maven 杂记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IDea创建Spring或Maven项目缺少src、main、java等文件解决办法

    前言: 我们创建一个Maven、Spring项目时出现文件缺失时,可以进行手动添加文件目录 1、缺失文件时: 2、点击左上角File,选择项目结构 3、选择Modules 4、点击最上面的项目,右键添加新的文件层  5、添加src,右键点击src添加resources和java,单击resource选择Resources 6、点击右下角

    2024年02月13日
    浏览(71)
  • SpringBoot版本与Spring、java、maven、gradle版本对应汇总(1->3版本,收藏一波)

    Spring Boot 3.1.x Spring Boot 3.0.x Spring Boot 2.7.x Spring Boot 2.6.x Spring Boot 2.5.x Spring Boot 2.4.x Spring Boot 2.3.x Spring Boot 2.2.x Spring Boot 2.1.x Spring Boot 2.0.x Spring Boot 1.5.x   Spring Boot 1.4.x  Spring Boot 1.3.x   Spring Boot 1.2.x  

    2024年02月03日
    浏览(44)
  • Spring Boot各版本与Java版本的对应兼容关系,与构建工具(Maven、Gradle)版本的对应兼容关系,对servlet 容器的支持

    by:垃圾程序员 当前文章具有时效性,在当前springboot的版本下做的整合。之后大家视情况可以直接到Spring的官网查看 Spring | Home Level up your Java code and explore what Spring can do for you. https://spring.io/ 下面是Spring Boot各个版本的支持时间 下面是Spring Boot 推荐使用的各个版面,并标注出

    2024年02月10日
    浏览(53)
  • Maven与spring学习

    目录 该如何学习Maven,是先该学习spring还是先学习Maven 能讲一下该如何学习Maven吗? 火狐浏览器有能让网页翻译成为中文的插件吗 秋田和柴犬是同一个狗吗 学习Maven可以与学习Spring同时进行,两者并不需要先后顺序。 Maven是一个Java项目管理工具,可以自动化构建、发布和文

    2024年02月03日
    浏览(36)
  • maven搭建spring项目

    安装jdk 安装maven 安装eclipse pom.xml 新建hellospring.java 修改App.java main下新建resources文件夹,该文件下新建applicationContext.xml 运行项目

    2024年02月10日
    浏览(34)
  • IDEA 中搭建 Spring Boot Maven 多模块项目 (父SpringBoot+子Maven)

    [Ref] 新建一个SpringBoot项目 删除无用的 .mvn 目录、 src 目录、 mvnw 及 mvnw.cmd 文件,最终只留 .gitignore 和 pom.xml ① 删除 dependencies 标签及其中的 spring-boot-starter 和 spring-boot-starter-test 依赖,因为 Spring Boot 提供的父工程已包含,并且父 pom 原则上都是通过 dependencyManagement 标签管理

    2024年01月20日
    浏览(76)
  • Spring5学习笔记--Maven

    本文主要内容 理解并实现分模块开发 能够使用聚合工程快速构建项目 能够使用继承简化项目配置 能够根据需求配置生成、开发、测试环境,并在各个环境间切换运行 了解Maven的私服 clean清理阶段 清理工作 pre-clean 执行一些需要在clwan之前完成的工作 clean 移除所有上一次构建

    2024年02月16日
    浏览(40)
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven使用前准备

    一.Maven准备 注意:IDEA2019.1.x 最高支持Maven的3.6.0 下载地址:http://maven.apache.org/ Maven底层使用Java语言编写的,所以需要配置JAVA_HOME环境变量及Path 将Maven解压 非中文无空格 目录下 配置 MAVEN_HOME 环境变量及 Path 新建系统变量MAVEN_HOME,添加变量值maven根目录 编辑系统变量Path,添

    2024年02月09日
    浏览(49)
  • Maven方式构建Spring Boot项目

    创建项目 - HelloWorld01 单击【Create】按钮 在pom.xml文件里添加parent和web的起步器依赖 添加如下代码: 刷新项目依赖 创建net.army.boot包,在包里创建启动类HelloWorld01Application 添加如下代码: 注意:入口类必须添加注解符@SpringBootApplication,表明它是Spring Boot应用。 在主方法里,利

    2024年02月12日
    浏览(55)
  • 基于 Spring MVC + MyBits + Maven

    Web 应用开发——基于 Spring MVC + MyBits + Maven ​       Spring MVC是一个基于动作的MVC框架。该框架突出了HTTP中的请求/响应特性,在该框架中,用户的每一个请求都声明了一个需要执行的动作。而这主要是通过将每个请求URI映射到一个可执行的方法来实现的。同时,其也将请求

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包