Maven之Parent模块配置-关于聚合与继承、依赖管理、占位符、构建管理和多套环境 本文开始对study-parent模块的pom.xml进行配置。该文件的角色是整个Maven的Parent。文中将对Maven的聚合与继承、依赖管理、占位符、构建管理、多套配置等概念进行解释。以下将pom.xml的元素结构摘录如下:study-parent/pom.xml<?xml
1 ,Maven的聚合和继承的概念1.1 聚合聚合解决问题的场景如下:我们想要一次构建两个项目,而不是到两个模块的目录下分别执行mvn命令,Maven聚合这一特性就是为此服务。为了方面用户构建项目,通常将聚合模块放在项目目录的最上层,其他模块则作为聚合模块的子模块存在。聚合模块仅仅是帮助聚合其他模块而构建的工具,它本身并无实质的内容。1.2
1.聚合和继承的概念聚合:将多个项目放到一起运行新建父项目,在pom.xml中添加<modules>
<module>SIP-utils</module>
<module>SIP-web</module>
<module>SIP-sql</module>
做面向对象编程的人都会觉得这是一个没意义的问题,是的,继承就是避免重复,maven的继承也是这样,它还有一个好处就是让项目更加安全情景分析二:我们在项目开发的过程中,可能多个模块独立开发,但是多个模块可能依赖相同的元素,比如说每个模块都需要Junit,使用spring的时候,其核心jar也必须都被引入,在编译的时候,maven-compiler-plugin插件也要被引入如何配置继承:1.说到继承
作用使用maven构建的项目可以直接使用maven build完成项目的编译、测试、打包,无需额外配置。build标签描述了如何编译及打包项目,具体的编译和打包工作是通过其中的plugin配置来实现的。当然,plugin不是必须的,即使不添加默认也会引入以下插件: 如果有需要可以另外进行配置,以下配置了编译时使用的jdk版本。 build分类:一种是直接写在下,即proje
<!-- This profile helps to make things run out of the box in IntelliJ --> <!-- Its adds Flink's core classes to the runtime class path. --> <!-- Other ...
转载
2021-07-21 16:03:00
196阅读
2评论
前言做一个项目呢,都需要开发/测试/生产这不同的环境吧. 不同的环境也就意味着数据库不一样,zk地址不一样,fastdfs地址不一样,redis地址不一样等等. 难道每次移交测试前,我都要把这些配置文件换个遍?maven profile就给我们提供了很大的方便.只需要引用不同的文件夹下即可. 让我带领大家进入maven profile的大门真实使用场景local本地/ beta
原创
2022-01-13 11:39:21
171阅读
Maven项目Profile打包最佳实践 一、 背景 做项目的时候通常会有多个环境如:product、pre、test、dev,这个时候我们通常在项目中有5个配置文件,application.properties存放公共的配置,每个环境要自己有独自的配置文件application-{profile}.properties, &n
导读:使用maven是为了更好的帮项目管理包依赖,maven的核心就是pom.xml。而maven中有许多的标签,下面我们主要讨论parent、dependencies与dependencyManagement标签它们的用处以及区别。 一、Parent标签的应用场景在实际开发中我们为了更好地进行开发和管理我们常会进行模块化开发。现在有这样一个场景,sac-def项目中有两个模块sac-
Maven的六类属性 内置属性 主要有两个常用内置属性:${basedir}项目的根目录(包含pom.xml文件的目录),${version}项目版本 POM属性 用户可以使用该属性引用POM文件中对应元素的值,常用的POM属性包括: ${project.build.sourceDirectory}:项目的主源码目录,默认为src/main/java ${pro
简介maven中所有的属性,都是可以通过${属性名}获取对应属性值的。一、maven预定义的基本属性mvn提供四种默认的基本属性,分别是1.1 env:环境属性env是系统的环境变量,例如我们使用${env.HOME}获取用户的目录 -${env.HOME}:用户目标,例如/Users/zhangsan -${env.USER}: 用户名,例如zhangsan -${env.PATH} : 环境变
背景 项目构建的时候,需要根据不同的场景来改变项目中的属性资源,最为常见的莫过于数据库连接配置了,试想有生产环境、测试缓存、发布环境等,需要为不同的场景下来动态的改变数据库的连接配置。而使用maven就可以帮我们解决这些问题。下面就来分享一下maven中的profile和filtering的属性。 为了便于测试一下功能,需要搭建maven的web项目,具体配置请详见如何用maven创建web项目。
前言在很多情况下,我们希望项目在不同的阶段有不同的构建,开发的时候,使用开发的环境配置,测试的时候,使用测试的环境配置,上线的时候使用其他的配置,虽然说,每次切换项目运行的环境的时候,我们可以手动更改配置,但这样难免有疏漏之处,导致项目构建的失败。这个时候,我们就需要Maven进行灵活的构建,使用属性、profile和资源过滤三个特性达到根据不同的环境构建项目的目的。一、Maven 属性最常见的用
Maven属性(1)内置属性:主要有两个常用内置属性${basedir}:表示项目根目录,即包含pom.xml文件的目录${version}:表示项目版本(2)POM属性:用户可以使用该类属性引用POM文件中对应元素的值。常用的POM属性:${project.build.sourceDirectory}:项目的主源码目录,默认为src/main/java/${project.build.testS
1.profile可以干什么
一个Profile可以覆盖项目构件的最终名称,项目依赖,插件配置以影响构建行为。Profile还可以覆盖分发配置;例如,如果你通过一个staging profile发布一个构件到staging服务器上,你就可以创建一个profile然后在里面定义distributionManagement元素。
总之,profile可以覆盖POM中定义的的任何东西,因些pro
转载
2012-04-19 20:20:39
6678阅读
其他网址
原创
2022-03-23 18:04:18
239阅读
背景构建项目时可能会遇到在测试(如单元测试)、开发、模拟、生产等不同环境下需要不同配制(properties、xml)或资源(jpg、png、mp3)的情况。比如常见的数据库连接(即jdbc url)的值,在不同的环境下可能有如下几种值:测试环境:jdbc:mysql://localhost:3306/foobar_test开发环境:jdbc:mysql://localhost:3306/foob
1. 简介Archetype插件通过 pom.xml 文件创建了一个项目。这就是项目对象模型 (POM),一个项目的声明性描述。当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里的信息。这个POM文件在maven1中是project.xml,在maven2时改为pom.xml。 <?xml version="1.0" encoding="UTF-8"?>
<p
1. surefire插件
Maven Surefire 插件有一个 test 目标,该目标被绑定在了 test 阶段。
test 目标执行项目中所有能在 src/test/java 找到的并且文件名与 **/Test*.java, **/*Test.java 匹配的所有单元测试 ,
在 Maven Surefire 插件
Java 配置文件动态选择应用背景pom文件配置 Profiles配置文件maven资源插件配置yml配置文件指定pom文件中的配置项实例如下 应用背景在开发过程中,Java运行会面临不同的运行环境,比如开发环境、测试环境、生产环境,在不同的开发环境下所需要配置的数据信息可能不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应