![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
maven
波波仔86
生活与技术并发!
展开
-
自定义Maven插件
第一、自定义Maven插件概述Mojo:Maven plain Old Java Object。每一个Mojo就是Maven中的一个执行目标(executable goal),而插件则是对单个或者多个相关Mojo做统一分发。一个Mojo包含了一个简单的Java类。插件中多个类似Mojo的通用之处可以使用抽象父类来封装。Maven插件项目的打包方式packagin必须为maven-plugin。第二、自定义插件Maven插件的实现1、创建一个maven项目mavenplugin2、引入ma转载 2020-05-17 20:32:35 · 1035 阅读 · 0 评论 -
Maven插件自定义绑定
除了内置绑定以外,用户还能够自己选择将某个插件目标绑定到生命周期的某个阶段上,这种自定义绑定方式能让Maven项目在构建过程中执行更多更富特色的任务。一个常见的例子是创建项目的源码jar包。内置的插件绑定关系中没有涉及这一任务,因此需要用户自行配置。maven-source-plugin可以帮助我们完成该任务,它的jar-no-fork目标能够将项目的主代码打包成jar文件,可以将其绑定到default生命周期的verify阶段上,在执行完集成测试后和安装构件之前创建源码jar包。具体配置见下:&转载 2020-05-17 19:19:28 · 2165 阅读 · 0 评论 -
Idea自定义Maven骨架(archetype)
选择骨架时的问题:在创建Maven的项目时我们发现了一个很不方便的问题,就是每次创建Maven的工程的时候,都需要选择一个骨架,但是每个骨架都需要删除一部分东西才行,在平时开发中,如果是分布式项目,有可能会频繁创建子项目,每次都要删除不要的文件然后拷贝我们要的文件,例如弹簧配置,web.xml中配置等。这样做不仅会浪费大量时间,拷贝和删除文件也容易导致错误的发生,比如漏拷某文件。一个典型的Archetype Maven项目主要包括如下几个部分:pom.xml:Archetype自身的...转载 2020-05-17 17:01:25 · 1317 阅读 · 0 评论 -
idea设置创建新项目的默认maven
根据图解设置设置你的maven地址转载 2020-05-17 15:43:02 · 1010 阅读 · 0 评论 -
maven打包的几种形式
1、maven打包相关命令package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库 install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库 deploy命令完成了项目编译、单元测试...转载 2019-10-14 17:16:19 · 983 阅读 · 0 评论 -
maven仓库中心mirrors配置多个下载中心(执行最快的镜像)
在日常生活中,我们使用maven下载需要的jar包,但是很多的时候由于中央仓库没有,所以我们没有办法下载到需要的jar包,手动去下载上,然后放入到lib下,然后build path有的时候会感到很不舒服,不是很是不实用。所以此处可以在maven的设置中心添加多个下载仓库,这样丰富了中央仓库的下载地址。1、配置idea指定本地仓库的mavenfile-->Other Settings-...转载 2019-10-09 20:07:43 · 483 阅读 · 0 评论 -
maven打包成可执行jar
将项目进行编译,测试之后,下一个重要步骤就是打包。pom.xml中如果没有指定打包类型,默认打包类型为:jar。我们可以简单地执行命令打包:mvn clean pachage。类似地,maven会在打包之前执行编译,测试等操作。如以打jar包为例,jar:jar任务负责打包,实际上就是jar插件的jar目标将项目主代码打包成一个名为xxxxxx-1.0-SNAPSHOT.jar的文件。该文件...原创 2019-09-19 14:03:10 · 631 阅读 · 0 评论 -
Maven jar包冲突原因
A依赖于B及C,而B又依赖于X、Y,而C依赖于X、M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖)。这里有一个需要特别注意的,即B和C同时依赖于X,假设B依赖于X的1.0版本,而C依赖于X的2.0版本,A究竟依赖于X的1.0还是2.0版本呢?这就看Classloader的加载顺序了,假设Classl...原创 2019-08-21 17:31:48 · 150 阅读 · 0 评论 -
maven聚合与继承
在这个技术飞速发展的时代,各类用户对软件的要求越来越高,软件本身也变得越来越复杂。因此,软件设计人员往往采用各种方式对软件划分模块,以得到更清晰的设计及更高的重用性。当把Maven应用到实际项目中的时候,也需要将项目分成不同的模块。Maven的聚合特性能够把项目的各个模块聚合在一起构建,而Maven的继承特性则能够抽取各个模块相同的依赖和插件等配置,再简化POM的同时,还能促进各个模块配置的一致性原创 2017-12-09 15:27:12 · 251 阅读 · 0 评论 -
maven生命周期和插件
在有关Maven的日常使用中,命令行的输入往往就对应了生命周期,如mvn package就表示执行默认生命周期阶段package。Maven生命周期是抽象的,其实际行为都由插件来完成,如package阶段的任务可能就会有maven-jar-plugin完成。生命周期和插件两者协同工作,密不可分。1、何为生命周期Maven的生命周期就是为了对所有的构件过程进行抽象和统一。Maven从大量项目原创 2017-12-09 11:42:35 · 285 阅读 · 0 评论 -
maven仓库详解
1、何为maven仓库在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库。(仓库就是存放依赖和插件的地方)任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径,解读Maven在仓库中的存储路径:1.基于groupId准备路径,将句点分隔符转成路径原创 2017-12-08 21:13:54 · 662 阅读 · 0 评论 -
maven坐标
Maven坐标为各种构件引入了秩序,任何一个构件都必须明确定义自己的坐标,而一组Maven坐标是通过一些元素定义的,它们是groupId、artifactId、version、packaging、classifier。groupId:定义当前Maven项目隶属的实际项目。首先,Maven项目和实际项目不一定是一对一的关系。比如SpringFramework这一实际项目,其对应的Mave原创 2017-12-08 20:14:21 · 181 阅读 · 0 评论