-
Maven实战-第二十四篇(最终篇)
一、Maven中的内置属性 下面我们介绍一下Maven中的内置属性,在Maven插件开发那篇文章中我们简单的介绍过,这篇我们在介绍一下。下面就是Maven为我们提供的所有内置的属性。 ${project.build.sourceDirectory}:项目的主源码目录,默认为src/main/java/。 ${project.build.testSourceDirectory}:项目的测试源码目录,…- 669
- 0
-
Maven实战-第二十三篇(用Maven进行代码测试)
一、maven-surefire-plugin 在实际的项目开发中我们通常会对我们编写的代码进行测试。在这一篇中我们将详细介绍一下,如何使用Maven进行测试。在Maven中执行测试用例非常的简单,在之前介绍生命周期时我们知道,Maven可以通过插件的方式绑定其生命周期实现我们自定义的业务逻辑。Maven就是通过这样的方式,使用maven-surefire-plugin插件方式实现在Maven中使…- 1.1k
- 0
-
Maven实战-第二十二篇(部署组件到Nexus)
在上一篇中我们详细介绍了Nexus中有关仓库的内容,并且也创建了我们自定义的仓库,这一篇中我们将详细介绍一下,如何部署组件到Nexus中,以及如何使用Nexus中的组件。将Maven中的组件部署到Nexus非常的简单,共有两种方式可以选择,第一种是直接通过Nexus上传,还有一种是通过Maven的命令部署。我们首先看一下第一种部署方式。 一、Nexus界面部署 通过Nexus界面部署组件很简单,我…- 805
- 0
-
Maven实战-第二十一篇(Nexus中的仓库)
在上一篇中我们介绍了Nexus中有关安装的内容,并且也简单介绍了Nexus中有很多仓库。在这一篇中我们将详细介绍一下有关Nexus中仓库的内容。我们知道Nexus的目的就是方便我们管理Maven的组件。但Maven的组件非常多。为了更好的方便管理,Nexus内置了很多种仓库类型。主要包括代理仓库、宿主仓库和仓库组等。并且每一种仓库都提供了特有的特征,方便我们不同场景的使用。下面我们详细介绍一下它们…- 1.1k
- 0
-
Maven实战-第二十篇(Nexus创建私服)
一、什么是Nexus 在之前Maven仓库的文章中,我们介绍了有关私服的内容,今天我们介绍一下如何搭建一个私服。搭建私服有很多种软件支持,例如Apache的Archiva 、JFrog的Artifactory和Sonatype的Nexus。这里我们使用Nexus来搭建私服,因为它是搭建私服最简单也是最流行的一个Maven仓库管理软件。并且它还提供了非常友好的管理界面、支持代理仓库、仓库索引和搜索、…- 1k
- 0
-
Maven实战-第十九篇(Maven多模块构建)
一、多模块构建顺序 在Maven聚合那篇文章中我们介绍了可以通过父模块来管理子模块,并且我们也介绍了,如果项目是多模块构建的,在构建的时候, 是有默认构建顺序的。例如一个项目中有三个模块分别为:A、B、C。期中A依赖于项目B。那我们在父项目中执行构建命令时,Maven并不会按照我们声明的顺序构建执行,而是按照项目的依赖顺序构建的。也就是上面说的A依赖B,所以不管我们项目中如何配置顺序,Maven在…- 762
- 0
-
Maven实战-第十八篇(Maven中的默认约定)
在之前的文章中我们介绍过Ant管理工具,通过Ant也是可以很方便的管理我们项目编译的。但Ant和Maven有着本质的区别,第一个区别就是Ant不支持管理项目的依赖。还有一个区别是Ant需要我们自己定义相应的目录与规则才可以实现项目编译的效果,而Maven则是通过插件的方式实现的。虽然Ant这种方式比较自由,但也带来了相应的弊端。例如重复性的建设,构建脚本不可重复使用等问题,因为不同的机器环境,指定…- 1.3k
- 0
-
Maven实战-第十七篇(Maven中的依赖管理)
通过上一篇的介绍我们知道在Maven中有很多标签都是可以被继承的。其中dependencies标签就是当中的一个。并且我们也知道dependencies标签是配置项目的依赖的。那我们是不是可以在父pom中配置项目中的依赖,然后让子模块继承呢?这样就解决了重复配置依赖的问题了。我们的子项目就不需要配置依赖信息了。下面我们按照上面说的验证一下。我们在父项目中引入依赖,然后看子项目是否能自动继承这个依赖…- 1.2k
- 0
-
Maven实战-第十六篇(Maven中的继承)
在上一篇中我们介绍了Maven中聚合的功能,通过聚合的功能可以解决我们项目中管理多个模块的问题。但是这还远远不够,因为我们在实际的多模块开发配置子模块pom.xml文件的时候会发现,我们必须按照Maven的规则和语法来配置pom.xml。这本身是没有任何问题的,但如果我们项目的子模块比较多时,这样就会导致一个问题,也就是很多pom.xml配置重复了。因为不同的模块配置的语法和规则几乎一样,只有个性…- 407
- 0
-
Maven实战-第十五篇(Maven中的聚合)
在实际的项目开发中,我们通常的项目架构都是分模块开发的,也就是一个项目会有多个模块,不同的团队负责开发不同的模块。那么在Maven中怎么能控制多个模块的构建呢?如果每个模块都需要单独的管理的话,那么如果模块比较多的话,是一个不小的工作量。所以Maven为了方便我们管理项目的,在Maven中我们可以创建另外的一个项目来控制其它模块的构建,并且每一个模块都有自己独立的pom文件。这个控制其他模块的构建…- 871
- 0
-
Maven实战-第十四篇(Maven中的插件)
一、什么是Maven中的插件 在上一篇中我们介绍了Maven的生命周期,并且我们也了解了它实际上的功能都是由插件来完成的。可见插件对于Maven来说是多么的重要。Maven也为我们项目构建提供了很多默认的插件支持。当然我们也可以配置额外的插件,甚至我们可以开发自己的插件来实现我们自己特有的功能。那么到底什么是Maven的插件呢?插件的本质其实就是构建目标的集合。构建目标也可以理解为上一篇中我们介绍…- 390
- 0
-
Maven实战-第十三篇(Maven的生命周期)
一、什么是Maven的生命周期 我们在实际的开发中有很多重复性的操作,例如代码的编译、打包、部署等等。Maven为了解决这样重复性的问题,对项目的构建过程进行了抽象和统一。这其实就是Maven的生命周期,目的是容易让开发人员在使用Maven的时候,方便我们扩展。并且Maven中的生命周期基本包括了我们之前介绍过的所有项目的构建命令,例如:编译、测试、打包、测试、部署等。 在Maven中生命周期定义…- 521
- 0
-
Maven实战-第十二篇(Maven中的版本)
通过之前的内容我们知道,如果我们想引入一个依赖,必须要指定三个元素。分别是groupId、artifactId、和version。前两个元素我们已经详细介绍过了,今天我们详细介绍一下version元素。 稳定版本 稳定版本也就是我们平常中常用到的版本例如数字版本,当然还并不是只有数字版本的才叫稳定版本,例如还有一此依赖包是Alpha和Final版本的,这些也都是稳定的版本。例如我之前文档中多次介绍…- 528
- 0
-
Maven实战-第十一篇(Maven中的镜像)
上两篇中我们介绍了,有关Maven中仓库的内容,并且也简单介绍了mirror的内容。今天我们详细介绍一下mirror标签的内容,也就是Maven中的镜像。 镜像很简单,可以理解为镜子。简单来说也就是仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。并且我们知道Maven仓库的中央仓库地址是在国外的,如果直接访问的话,可能因为网络的原因导致速度较慢涉及下载组件失败。如果我们在国内搭…- 1.1k
- 0
-
Maven实战-第十篇(Maven的仓库配置)
这篇我们将对上一篇中仓库的内容进行额外的补充。通过上一篇的内容,我们知道如果配置了私服地址。Maven并不表示着不访问中央仓库了,而是当本地仓库查询不到我们需要的依赖时,会优先请求私服地址,然后在当私服中也没有查询到我们想要的依赖时在访问中央仓库寻找。当私服从中央仓库寻找到依赖组件时,会下载到私服中,这样当其它想访问此依赖组件时,就不需要在访问中央仓库了,因为私服中已经存在了,就可以直接从私服中下…- 337
- 0
-
Maven实战-第九篇(Maven中的仓库)
一、什么是Maven的仓库 我们是否想过一个问题,为什么我们通过Maven配置相应的依赖就可以自动下载相应的依赖包呢?按照我们计算机的思维角度考虑。那么一定是有一个服务或者一个位置提供了这个依赖包的下载。否者Maven不可能会自动的下载,因为没有资源。所以在Maven中提供这个服务或者位置的地方就可以理解为仓库。也就是存储依赖包的地方。在Maven中仓库是有以下几个分类的,下面我们详细介绍一下。 …- 838
- 0
-
Maven实战-第八篇(Maven中的依赖查询)
在之前的内容中我们介绍了两种查看Maven中依赖关系的方法。一个是通过External Libraries查看。另外一个就是通过Show Deagram ...查看,但不管以上是哪种方法,本质都是依赖IDEA查看的。实际上Maven提供了项目中查看依赖的命令,可以帮助我们非常方便的查询项目的依赖的情况。下面我们分别介绍一下。 一、mvn dependency:list 使用上述命令可以列出我们项目…- 671
- 0
-
Maven实战-第七篇(Maven中的依赖冲突)
一、什么是Maven中的依赖冲突 我们在第五篇Maven实战-第五篇(Maven的传递性依赖)中介绍了Maven中传递性依赖的内容。并且通过上一篇的内容我们也了解到了传递性依赖为我们使用Maven所带来的好处。但是同样的传递性依赖也为我们带来了使用的弊端,也就是Maven中的依赖冲突。那什么是依赖冲突呢?假如我们有一个项目A。它依赖于项目X。还有一个项目B也依赖于项目X。但是呢这两个项目所依赖X的…- 160
- 0
-
Maven实战-第六篇(Maven的依赖范围)
今天我们分享一下Maven中的依赖范围。因为在之前的Maven实战-第四篇(Maven的依赖配置)文章中已经对一部分内容进行了详细的介绍,所以本篇中涉及到上述的内容将不在过多的介绍了。 一、一般依赖范围 在Maven中依赖范围的目的控就是控制项目中classpath的关系。在Maven中主要有三种classpath。分别是编译的classpath、测试的classpath和运行的classpath…- 363
- 0
-
Maven实战-第五篇(Maven的传递性依赖)
今天我们分享的内容是Maven中的传递性依赖。在介绍这个内容之前,在使用Maven时会不会有这样疑惑。也就是当我们引入一个组件时,需要在pom.xml中配置相关依赖的标签。但这个组件可能还会依赖其它的组件。如果我们每引入一个依赖时,都需要将这个依赖所依赖的组件配置写到pom.xml中这样会导致,我们需要配置的依赖的标签就会非常的多,并且我们也很难知道一个组件和依赖的其它的组件到底是什么。且这样也违…- 169
- 0
-
Maven实战-第四篇(Maven的依赖配置)
在之前文章中,我们已经介绍过了,如果要在Maven中添加新的依赖则需要使用dependencies标签来配置Maven的依赖,并且我们已经介绍过了很多有关依赖元素的配置。例如:groupId、artifactId、version等。但上面的内容只是我们比较常见的配置,实际上Maven为了满足我们很多需求场景,提供了很多额外的配置,具体的配置如下: <dependencies> <dependenc…- 442
- 0
-
Maven实战-第三篇(Maven中的坐标)
我们在上一篇中我们介绍过,如果想通过Maven添加项目的依赖时,就需要在pom.xml中引入项目的相关配置,也就是上一篇中说过的,如果要在项目中引入fastjson依赖,需要添加以下的配置: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId&…- 805
- 0
-
Maven实战-第二篇(Maven的入门)
通过前两篇的介绍我们基本上对Maven有了一个初入的了解,在一这一篇中,我们详细介绍一下如何在项目中使用Maven,也就是Maven的入门。 什么是POM 在Maven实战-第一篇(Maven的基本信息)中我们介绍过Make和Ant。它们都是通过Makefile或者build.xml来管理项目的。那么对于Maven也是一样的,Maven也需要一个脚本文件来执行项目的构建和管理。在Maven中采用了…- 236
- 0
-
Maven实战-第一篇(Maven的基本信息)
什么叫做Maven 在上一篇中我们简单的介绍了一下 Maven实战这本书的简介以及相关的背景,在这一篇中我们开始详细的介绍一下这本书的内容。今天我们分享的内容主要是详细的介绍一下Maven的基本信息。例如什么叫做Maven,为什么我们需要Maven,以及如何安装它。 首先我们从英语的角度看什么是Maven。在英语的角度上看Maven可以翻译为“内行、专家”。所以当我们以后看到这个单词的时候,它除了…- 1.3k
- 0