资讯专栏INFORMATION COLUMN

使用maven快速入门

HelKyle / 2830人阅读

摘要:基础知识官网传送门项目结构文件文件代表工程对象模型它是使用工作的基本组件,位于工程根目录。表示被依赖的仅参与测试相关的处理,包裹测试代码的编译,执行。

Maven 基础知识

官网: 传送门

Maven 项目结构

$ MavenProject
|-- pom.xml
|-- src
|   |-- main
|   |   `-- java
|   |   `-- resources
|   `-- test
|   |   `-- java
|   |   `-- resources
`-- README.md
POM文件

POM文件代表 工程对象模型(Project Object Model)它是使用Maven工作的基本组件,位于工程根目录。

POM文件支持继承



    4.0.0
    pom
    
        mscx-ad-discovery
        mscx-ad-zuul
        mscx-ad-gateway
        mscx-ad-discovery-nacos
        mscx-ad-common
        mscx-ad-db
        mscx-ad-sponsor
        mscx-ad-search
        mscx-ad-feign-sdk
    

    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.5.RELEASE
         
    

    com.sxzhongf
    mscx-ad
    1.0-SNAPSHOT
    分布式广告系统
    基于Spring Cloud Alibaba 实现的分布式广告系统

    
        1.8
        Greenwich.SR2
    

    
        
            org.projectlombok
            lombok
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
    
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/milestone
            
                false
            
        
        
            alibaba
            ali Milestones
            http://maven.aliyun.com/nexus/content/groups/public/
            
                false
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

Maven 坐标

Maven Dependency
Maven思想 是 约定大于配置,默认依赖中,scope 是compile.
Scope类型

compile(会被打包到当前project)

表示被依赖的package参与当前project的编译,包含后续的测试,运行周期都会参与,是一个强依赖。

test

表示被依赖的jar 仅参与测试相关的处理,包裹测试代码的编译,执行。(如junit)

runtime

表示被依赖的jar不需要参与项目的编译,但是后期的测试和运行周期需要参与。

provided

打包的时候不需要包含进去,其他的Container会提供该依赖支持,理论上该依赖可以参与编译、测试运行等周期 ,相当于compile,但是在打包阶段做了exclude命令。

system

从参与环境来看,和provided相同,但是被依赖项不会从maven仓库获取,而是从本地文件系统获取,一定需要配合systemPath属性使用

import

This scope is only supported on a dependency of type pom in the  section.

依赖传递特性

官方解释:传送门

Dependency mediation (最近依赖原则)

"nearest definition" means that the version used will be the closest one to your project in the tree of dependencies. For example, if dependencies for A, B, and C are defined as A -> B -> C -> D 2.0 and A -> E -> D 1.0, then D 1.0 will be used when building A because the path from A to D through E is shorter. You could explicitly add a dependency to D 2.0 in A to force the use of D 2.0.

根据依赖深度,选择依赖路径最近的package version, 如果依赖深度相同,那么选择前一个。Note that if two dependency versions are at the same depth in the dependency tree, the first declaration wins.

Dependency management

依赖管理(项目作者可直接指定依赖版本)

Dependency scope 如上一节所述

Excluded dependencies 排除依赖包中依赖项

Optional dependencies (相当于设置不允许将该依赖传递下去)

常用命令

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75566.html

相关文章

  • Spring Boot 2 快速教程:WebFlux 快速入门(二)

    摘要:响应式编程是基于异步和事件驱动的非阻塞程序,只是垂直通过在内启动少量线程扩展,而不是水平通过集群扩展。三特性常用的生产的特性如下响应式编程模型适用性内嵌容器组件还有对日志消息测试及扩展等支持。 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 02:WebFlux 快速入门实践 文章工程: JDK...

    gaara 评论0 收藏0
  • Spring Boot 2.x基础教程:快速入门

    摘要:编写一个接口创建命名为根据实际情况修改创建类,内容如下启动主程序,使用等工具发起请求,可以看到页面返回编写单元测试用例打开的下的测试入口类。 简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应...

    tigerZH 评论0 收藏0
  • MyBatis 框架之快速入门程序

    摘要:一使用快速创建项目关于如何快速创建项目,这个可以参考下面这篇文章项目管理工具基础入门系列一二快速配置依赖包打开文件,快速配置包,配置代码如下依赖包数据库驱动依赖包测试依赖包三快速创建实体类创建类,代码如下四 一、使用 IDEA 快速创建 Maven 项目 关于如何快速创建 Maven 项目,这个可以参考下面这篇文章: Maven 项目管理工具基础入门系列(一) 二、快速配置 MyBat...

    hosition 评论0 收藏0
  • Activiti指南(介绍)

    摘要:介绍这个快速入门假定熟悉和使用的开发环境本教程将引用以下变量变量描述项目的根位置从下载的解压缩文件的根位置。的名称建议将其作为。 介绍 这个快速入门假定: 熟悉Maven和Java 使用Java的开发环境 本教程将引用以下变量: 变量 描述 $mvnProject maven项目的根位置. $actUnzipedPack 从http://www.activiti.or...

    skinner 评论0 收藏0
  • 工具集核心教程 | 第二篇: IDEA入门到进阶(图文并茂)

    摘要:重度强迫症患者取消大小写敏感,让自动完成更齐全。如何为当前项目工程添加多个模块啊答对着工程右键选择通常选择,如图写在最后欢迎关注喜欢和点赞后续将推出更多的工具集教程,敬请期待。公众号回复面试,领取面试实战学习资源。 showImg(https://segmentfault.com/img/remote/1460000018862588); 前言:IntelliJ IDEA 如果说Int...

    skinner 评论0 收藏0

发表评论

0条评论

HelKyle

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<