Maven Optional & Exclusions 使用区别】的更多相关文章

Optional和Exclusions都是用来排除jar包依赖使用的,两者在使用上却是相反. Optional定义后,该依赖只能在本项目中传递,不会传递到引用该项目的父项目中,父项目需要主动引用该依赖才行. Exclusions则是主动排除子项目传递过来的依赖. 用法区别 Project-X -> Project-A Project-A -> Project-B <project> ... <dependencies> <dependency> <gr…
Optional和Exclusions都是用来排除jar包依赖使用的,两者在使用上却是相反. Optional定义后,该依赖只能在本项目中传递,不会传递到引用该项目的父项目中,父项目需要主动引用该依赖才行. Exclusions则是主动排除子项目传递过来的依赖. 用法区别 Project-X -> Project-A\ Project-A -> Project-B <project> ... <dependencies> <dependency> <g…
欢迎关注笔者的公众号: 小哈学Java, 专注于推送 Java 领域优质干货文章!! Maven 依赖排除(Exclusions) 因为 Maven 构建项目具有依赖可传递的特性,当你在 pom.xml添加某个依赖时,可能也会引入不需要的依赖到你的项目中,这将会会可能引起如下问题: Jar包版本冲突,如老版本Jar包缺失某个方法: JDK 版本不兼容: 老版本存在安全漏洞: ... 为了解决这些问题,Maven 容许你通过 <exclusions>来排除你不想要的依赖.这样,在你构建项目时,这…
写在前面 本来想写一篇「如何自定义Spring Boot Starter」,但是为了更好理解 Starter 的一些设计理念和其中的关键点,所以提前将一些细节内容单独提取出来讲解说明 在 Maven pom.xml 中,你经常会看到依赖项中有类似下面的代码: <dependency> <groupId>sample.ProjectA</groupId> <artifactId>Project-A</artifactId> <version&…
Maven 和 Ant 有什么不同呢?在回答这个问题以前,首先要强调一点:Maven 和 Ant 针对构建问题的两个不同方面.Ant 为 Java 技术开发项目提供跨平台构建任务.Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务.因此,由于 Maven 和 Ant代表两个差异很大的工具,所以接下来只说明这两个工具的等同组件之间的区别,如下表所示: Maven Ant 标准构建文件 project.xml 和 maven.xml build.xml 特性处理顺序 ${mav…
转自:http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradle Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外.虽然目前它基本上是Java构建的事实标准,但我们也能看到新兴的工具在涌现,比如基于Goovy的Gradle,而去年Hibernate宣布从Maven迁移至Gradle这一事件更是吸引了不少眼球.在此之前,我也听到了不少对Maven…
相同点: Ant和Maven都是基于Java的构建(build)工具. 理论上来说,有些类似于(Unix)C中的make ,但没有make的缺陷.Ant是软件构建工具,Maven的定位是软件项目管理和理解工具. Ant构件文件默认命名为build.xml. Maven特点: 拥有约定,知道你的代码在哪里,放到哪里去 ›拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程 . 只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情…
package 命令完成了项目编译.单元测试.打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库install 命令完成了项目编译.单元测试.打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库deploy 命令完成了项目编译.单元测试.打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库…
应用场景:projectA 依赖projectB,  projectB 依赖projectC时 <dependency> <groupId>com.itear.projectC</groupId> <artifactId>projectC</artifactId> <version>0.0.1-SNAPSHOT</version> <optional>true</optional> </dep…
      1.情景展示 选中maven项目,右键-->Run As或Debug As-->maven buid,maven install,maven test有什么区别? 2.区别说明 6 Maven  clean-->执行的是maven的原生命令: mvn clean 表示:删除target目录. 原目录结构存在target目录 执行该命令后, target目录被删除. 2018/11/14 选中target目录-->右键-->刷新-->在windows资源管理器…
Maven是一个采用纯Java编写的开源项目管理工具.Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编译,构建,测试,发布,报告等等.目前Apache下绝大多数项目都已经采用Maven进行管理.而Maven本身还支持多种插件,可以方便更灵活的控制项目. 构建 理解maven的第一步我们需要知道构建是什么?<maven实战>这本书里写…
我们知道maven能帮我们管理jar包,那么它是怎么管理的呢?这篇博客我们来详细介绍. 1.什么是坐标? ①.数学中的坐标 在平面上,使用 X .Y 两个向量可以唯一的定位平面中的任何一个点 在空间中,使用 X.Y.Z 三个向量可以唯一的定位空间中的任意一个点 ②.Maven 中的坐标 俗称 gav:使用下面三个向量子仓库中唯一定位一个 Maven 工程 在项目中的 pom.xml 文件中,我们可以看到下面gav的定义: 1.groupid:公司或组织域名倒序 <groupid>com.ys.…
作者:dunwu https://github.com/dunwu/blog 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容聚合 4. Mybatis内容聚合 5. 多线程内容聚合 简介 什么是 pom? POM 是 Project Object Model 的缩写,即项目对象模型. pom.xml 就是 maven 的配置文件,用以描述项目的各种信息. pom 配置一览 1 2 3 4 5 6 7 8 9 10 11 12 13 14…
1.何为依赖? 比如你是个男的,你要生孩子,呸呸呸...男的怎么生孩子,所以你得依赖你老婆,不过也不一定咯,你也可以依赖其她妹子. 我们在平时的项目开发中也是同理,你需要依赖一些东西才能实现相应的功能,但相应的功能或许也可以依赖其它的东西实现,比如数据库操作吧,你可以依赖hibernate,但你也可以通过mybatis来做. 这就是所谓的依赖关系咯. 以前我们需要手动的去找hibernate或者mybatis的jar包,系统抛异常我们还不知哪里报错,通过琢磨才明白没有引入相应的jar包,然后就去…
标签(空格分隔): 学习笔记 坐标 实际就像在几何中,我们用一对坐标(x, y)来表示坐标系中唯一的点:或者我们可以用(经度,纬度)来表示地球上的某一个位置,在Maven的世界中,有坐标来唯一的表示项目. 他们由groupId, artifactId, version, packaging, classifier等信息唯一的标识. 依赖 Maven会根据在POM中妹纸的信息自动下载所需要的依赖构件. 依赖的配置 <project> <dependencies> <depend…
1. Maven介绍 1.1. 简介 java编写的用于构建系统的自动化工具. 目前版本是2.0.9,注意maven2和maven1有很大区别,阅读第三方文档时需要区分版本. 1.2. Maven资源 见官方网站: The 5 minute test,官方简易入门文档: Getting Started Tutorial,官方入门文档: Build Cookbook,官方的cookbook: POM Reference,POM文件的设置参考 Settings Reference,settings文…
Maven之--坐标和依赖(上) 1.    Maven坐标概念 Maven通过构件的坐标来在Maven仓库中定位到详细的构件.Maven的坐标元素包含groupId.artifactId.versiion.packaging.classifier.Maven内置了一个中央仓库地址.须要时Maven会依据坐标到当中下载.详细关于中央仓库的介绍在后面. 2.    Maven坐标具体解释 比方以下一组坐标: <groupId>org.andy.items</groupId> <…
Maven协调具体的解释:      Maven定义了这样一组规则:世界上不论什么一个构件都能够使用Maven坐标唯一标识.Maven坐标的元素包含groupId.artifactId.version.packaging.classifier.我们仅仅须要提供正确的坐标元素,Maven就能找到相应的构件.比方当须要使用Java5平台上的TestNG的5.8版本号时,就告诉Maven:"groupId=org.testng; artifactId=testng; version=5.8; clas…
1.1 何为Maven坐标 正如之前所说的,Maven的一大功能就是管理项目依赖.为了能自动化地解析任何一个Java构件,Maven就必须将它们唯一标识,这就依赖管理的底层基础——坐标. 1.2 坐标详解 Maven坐标的元素包括:groupId,artifactId.version.packaging.classifier.先看一组坐标定义,如下: <groupId>org.sonatype.nexus</groupId> <artifactId>nexus-inde…
前面讲了maven一些关于Maven的简单知识,今天我给大家分享一些Maven的依赖管理.我相信用过maven的人都知道,它很重要的功能就是通过依赖来添加jar包. 让我们领略一下Maven是怎么管理我们的jar包的. 一.Maven坐标 1.1.数学中的坐标 在平面上,使用 X .Y 两个向量可以唯一的定位平面中的任何一个点 在空间中,使用 X.Y.Z 三个向量可以唯一的定位空间中的任意一个点 1.2.Maven 中的坐标 俗称 gav:使用下面三个向量子仓库中唯一定位一个 Maven 工程…
本文将记录Maven工程中依赖解析机制,内容包括: Maven依赖基本结构 从仓库解析依赖的机制 依赖传递性解析实例 1. Maven依赖基本结构 上篇文章记录了Maven依赖的聚合与继承,POM中依赖的声明通过dependency进行定义,并且通过groupId.artifactId及version三项定位Maven库中的唯一依赖.除了这三项外,还有其他属性进行限制,如下: <dependencies> <dependency> <groupId>...</gr…
mvn 3.0.4 创建maven项目命令  mvn  archetype:generate   -DgroupId=damocles-autocredit -DartifactId=damocles-autocredit  -DarchetypeArtifactId=maven-archetype-quickstart     -DinteractiveMode=false  -X 1 下载源代码:mvn dependency:sources -DdownloadSources=true -D…
Maven 核心原理 标签 : Java基础 Maven 是每一位Java工程师每天都会接触的工具, 但据我所知其实很多人对Maven理解的并不深, 只把它当做一个依赖管理工具(下载依赖.打包), Maven很多核心的功能反而没用上. 最近重读 Maven实战, 虽然这本书年岁较老(10年出版: 那还是Hudson年代), 但绝大部分还是很值得参考的. 本文讲述Maven的核心原理和概念, 因此还是大纲参考了这本书, 但细节大多参考的Maven的官方文档以及网友释出的博客. 本文主要讲解Mave…
Maven为所有的项目引入了坐标,基于坐标机制可以唯一定位一个项目. 坐标详解 以spring-core-2.5.6.jar的坐标定义为例,说明组成坐标的所有元素:groupId.artifactId.version.packaging.classifier.如下所示: <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <packaging>ja…
Maven坐标与依赖 最近想深度学习下maven,找到一本书叫<Maven实战>,这本书讲的确实很好,唯一遗憾的是当时maven教学版本是3.0.0的,而目前已经到了3.5.4了,版本存在差距, 没关系,如果有时间和精力我也会阅读官方文档,看看到底有哪些变换. 一.坐标详解 1.何为Maven坐标 maven定义了这样一组规则:世界上任何一个构件都可以使用maven坐标唯一标识,坐标元素包括:groupId.artifactId.version.packaging.classifier.只要提…
1.坐标 Maven坐标为各个构件建立了秩序,任何一个构件都必须明确自己的坐标,一个maven坐标是由一些元素确定的 <groupId>com.alivn.account</groupId> <artifactId>account-email</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> groupId:定义为ma…
maven是什么 maven是 构建工具 依赖关系工具 项目信息管理工具 而JAVA世界的ant只是一个构建工具,不具备依赖管理的功能,需要配合使用ivy进行依赖管理. maven的安装 下载maven,配置环境变量.升级的技巧:使用符号链接,环境变量指向符号链接,升级的时候修改符号链接即可. maven使用入门 手动搭建maven项目 编写pom 编写主代码和测试代码 使用ArcheType创建maven项目骨架 命令如下mvn archetype:generate实际上上述命令的完整格式是:…
1 . 坐标 maven 的所有构件均通过坐标进行组织和管理.maven 的坐标通过 5 个元素进行定义,其中 groupId.artifactId.version 是必须的,packaging 是可选的(默认为jar),classifier 是不能直接定义的. groupId:定义当前 Maven 项目所属的实际项目,跟 Java 包名类似,通常与域名反向一一对应. artifactId:定义当前 Maven 项目的一个模块,默认情况下,Maven 生成的构件,其文件名会以 artifactI…
Pom文件中的groupId.artifactId.version和name,这三个元素定义了一个项目的基本的坐标,在Maven世界中,任何的jar.pom或者war都是基于这些基本的坐标惊醒区分. groupId:定义了项目属于哪个组,这个项目组往往和项目所在的组织或公司存在关联.譬如在googlecode上建立了一个名为myapp的项目,那么groupId就应该是 com.googlecode.myapp.这里conup项目的groupId应该是cn.edu.nju.moon.conup a…
Maven 坐标与依赖 Maven 的一大功能是管理项目依赖.为了能自动化地解析任何一个 Java 构件, Maven 就必须将它们唯一标识,这就依赖管理的底层基础 一一 坐标.本章将详细分析 Maven 坐标的作用,解释其每一个元素:在此基础上,再介绍如何配置 Maven,以及相关的经验和技巧,以帮助我们管理项目依赖. 1. 坐标详解 Maven 坐标为各种构件引人了秩序,任何一个构件都必须明确定义自己的坐标,而组 Maven 坐标是通过一些元素定义的,它们是 grouped. artifac…