
Maven
文章平均质量分 81
Maven基本使用和原理解析
Bulut0907
大数据、机器学习、编程语言、IT相关技术分享, 喜欢请关注、点赞、收藏哦!
展开
-
Apache Maven project与module之间的继承和聚合、Maven的超级pom、有效pom
maven项目先创建了一个project A,然后在project A(父工程)下面创建了一个module B(子工程)。则B的pom.xml能继承A的pom.xml的配置在父工程统一管理所有module的依赖版本。对同一个项目的多个module进行依赖,能方便的使用同一版本父工程的pom.xml如下。子module的pom.xml如下说明如下:当我们创建一个project时,都会默认继承Maven的超级pom。超级pom定义了Maven在构建过程中有很多默认的设定,如:源文件sources存放的目录、原创 2022-07-08 09:44:55 · 640 阅读 · 0 评论 -
Apache Maven 自定义plugin插件的开发和使用
更好的理解插件的目标和生命周期环节之间的关系创建一个project,名称为maven-hello-plugin修改pom.xml,添加packaging和dependency,最终内容如下:创建Mojo类Mojo(Maven Old Java Object)类是一个Maven插件的核心类。每一个Mojo类都需要实现org.apache.maven.plugin.Mojo接口,org.apache.maven.plugin.AbstractMojo抽象类继承Mojo接口执行将插件安装到本地的ma原创 2022-07-14 08:43:58 · 1493 阅读 · 0 评论 -
Apache Maven私服Nexus的部署和配置、使用
OSS版本的可以下载免费使用,下载地址为https//help.sonatype.com/repomanager3/product-information/download,这里我们下载目前的最新版https//download.sonatype.com/nexus/3/nexus-3.40.1-01-unix.tar.gz。添加Nexussnapshots仓库的地址和jar包的依赖到pom.xml。下载jar包会以本地仓库、Nexuspublic仓库、Maven中央仓库的顺序进行下载。......原创 2022-07-15 09:41:31 · 1143 阅读 · 0 评论 -
Apache Maven settings.xml文件配置和mvn命令大全
配置maven central的国内镜像地址默认会从maven的中央仓库https://repo1.maven.org/maven2/进行依赖包拉取,其id为central。这里配置mirrorOf表示拦截从id为central的仓库进行依赖包拉取,改为从https://maven.aliyun.com/repository/central进行依赖包拉取,id和name自定义可以配置多个mirrorOf指向central的mirror,只有第一个连接不上,才会使用第二个。如果第一个连接上了,但没有该依赖包原创 2022-07-06 09:12:54 · 713 阅读 · 0 评论 -
Apache Maven依赖的scope范围总结和将jar包安装到maven仓库
可选值如下:compile、test、provided、import、system、runtime当我们自己创建的项目父工程,依赖另一个项目的父工程,会违背Maven的单继承。可以通过import依赖范围来依赖多个项目的父工程如下示例所示:说明:用于将本地的jar包引入到我们项目进行使用。移植性太差,不建议使用5. runtime专门用于编译时不需要,但是运行时需要的jar包。比如mysql-connector-java-8.0.29.jar驱动包6. optional可选依赖有时会有option原创 2022-07-06 09:17:27 · 373 阅读 · 0 评论 -
Apache Maven生命周期和插件目标概念、定义项目描述信息和生成site站点
为了让构建过程自动化完成,Maven设定了三个生命周期,生命周期中的每一个环节对应构建过程中的一个操作Maven设定了三个生命周期,一个生命周期的每一环对应构建过程中的一个操作Maven的核心程序仅仅负责宏观调度,不做具体工作。具体工作都是由Maven插件完成的。例如:编译就是由maven-compiler-plugin-3.10.1.jar插件来执行的一个插件可以对应多个目标,而每一个目标都和生命周期中的某一个环节对应Default生命周期中有compile和test-compile两个和编译相关的环节,原创 2022-07-07 09:41:07 · 215 阅读 · 0 评论 -
Apache Maven help插件介绍和pom.xml中进行property属性的定义、引用
详细的使用请参考官网:https://maven.apache.org/plugins/maven-help-plugin在pom.xml中定义的property如下然后交互式的查看属性值2.2 查看系统的属性值可以获取系统的属性值,也就是Java中的可以获取到的属性2.3 查看系统的环境变量2.4 查看project的pom.xml中的属性值使用表达式可以访问当前pom.xml中的元素值......原创 2022-07-13 08:54:17 · 1689 阅读 · 2 评论 -
Apache Maven build标签和plugin标签详解
我们自己创建项目时,如果没用指定build标签,则会从超级POM继承build标签。当我们要定制构建过程的时候,可以参考超级POM和有效POM配置build标签覆盖默认值或补充配置下面我们以maven-site-plugin为例进行讲解execution 标签内:maven-site-plugin插件的核心类是org.apache.maven.plugins.site.render.SiteMojo,它的父类是org.apache.maven.plugins.site.render.AbstractSit原创 2022-07-13 08:56:33 · 2608 阅读 · 0 评论 -
Apache Maven profile详解和资源属性过滤
profile有侧面的含义,项目有很多个运行环境,比如开发环境、测试环境、生产环境,每一个运行环境相当于是项目整体的一个侧面所以profile可以给不同的运行环境定义不同的pom配置属性,然后根据需要激活一个运行环境pom.xml中,project标签下除了modelVersion和module的坐标标签之外,其它标签都是在设定默认的profile。所以其它标签都可以配置到我们自己定义的profile中profile可以在下面两种配置文件中配置:语法要求:由于profile标签覆盖了pom.xml中的默认配原创 2022-07-14 08:45:36 · 1114 阅读 · 2 评论 -
Apache Maven依赖的传递性、依赖的排除、版本仲裁、jar包冲突解决
A依赖B,B依赖C,那么A能不能直接使用CA依赖B,B依赖C,A能不能直接使用C,取决于B依赖C时使用的依赖范围scope当A依赖B,A又依赖C,但B和C依赖一个包的两个不同版本,这就可能发生版本冲突,需要使用依赖排序将其中一个排除掉下面例子是iceberg-flink不引入slf4j-api的依赖传递3. 版本仲裁遵循以下原则:1. 最短路径优先在下面的例子中,对模块pro25-module-a来说,Maven会采用1.2.12版本2. 路径相同时先声明者优先在下面的例子中,在pro29-modu原创 2022-07-07 09:17:04 · 1854 阅读 · 0 评论