build标签--全局配置(project build)
1)defaultGoal
执行build任务时,如果没有指定目标,将使用的默认值。
如上配置:在命令行中执行mvn,则相当于执行mvn install
2)directory
build目标文件的存放目录,默认在${basedir}/target目录
3)finalName
build目标文件的名称,默认情况为${artifactId}-${version}
4)filter
定义*.properties文件,包含一个properties列表,该列表会应用到支持filter的 resources中。也就是说,定义在filter的文件中的name=value键值对,会在build时代替${name}值应用到resources中。
maven的默认filter文件夹为${basedir}/src/main/filters
resources标签:资源往往不是代码,而是properties或xml文件,无需编译,构建过程中往往会将资源文件从源路径复制到指定的目标路径,resources则给出各个资源在maven项目中的具体路径。
-
targetPath:资源文件的目标路径。
-
filtering:构建过程中是否对资源进行过滤,默认false。
-
directory:资源文件源路径,默认位于${basedir}/src/main/resources/目录下。
-
includes:一组文件名的匹配模式,被匹配的资源文件将被构建过程处理。
-
excludes:一组文件名的匹配模式,被匹配的资源文件将被构建过程忽略。同时也被includes的文件依然被忽略。
-
filters:给出对资源文件进行过滤的属性文件的路径,默认位于${basedir}/src/main/filters/目录下。属性文件中定义若干了键值对,用于在构建过程中将资源文件中出现的变量(键)替换为对应的值。
-
testResources:test过程中涉及的资源文件,默认位于${basedir}/src/test/resources/目录下,它们不会被构建到目标构件中。
profile标签:可以看到定义了多个profile,每个profile都有唯一的id,也包含properties属性。这里为每个profile都定义一个名为profiles.active的properties,每个环境的值不同。当我们打包项目时,激活不同的环境,profiles.active字段就会被赋予不同的值。
1.2 结合resource属性
这个profiles.active字段可以应用到许多地方,及其灵活。可以在配置文件里被引用;也可以结合pom文件里的resource和filter属性,作为文件名的一部分或者文件夹名的一部分,下面会详细讲解这个用法。
注意:maven的profile用法有许多种,但基本原理就是根据激活环境的不同,自定义字段被赋予不同的值。