Maven的pom.xml文件结构之Build配置build

末蓝、 2022-02-24 04:48 1044阅读 0赞

From: https://blog.csdn.net/taiyangdao/article/details/52374125

在Maven的pom.xml文件中,Build相关配置包含两个部分,一个是,另一个是,这里我们只介绍

  1. 在Maven的pom.xml文件中,存在如下两种











说明:

一种被称为Project Build,即是的直接子元素。另一种被称为Profile Build,即是的直接子元素。

Profile Build包含了基本的build元素,而Project Build还包含两个特殊的元素,即各种<…Directory>和

  1. Profile Build和Project Build共用的基本build元素

1) 示例如下:


install
${basedir}/target
${artifactId}-${version}

说明:

defaultGoal,执行构建时默认的goal或phase,如jar:jar或者package等
directory,构建的结果所在的路径,默认为${basedir}/target目录
finalName,构建的最终结果的名字,该名字可能在其他plugin中被改变

2)

资源往往不是代码,无需编译,而是一些properties或XML配置文件,构建过程中会往往会将资源文件从源路径复制到指定的目标路径。

给出各个资源在Maven项目中的具体路径。示例如下:




filters/filter1.properties



META-INF/plexus
false
${basedir}/src/main/plexus

configuration.xml


**/*.properties







说明:

resources,build过程中涉及的资源文件
targetPath,资源文件的目标路径
filtering,构建过程中是否对资源进行过滤,默认false
directory,资源文件的路径,默认位于${basedir}/src/main/resources/目录下
includes,一组文件名的匹配模式,被匹配的资源文件将被构建过程处理
excludes,一组文件名的匹配模式,被匹配的资源文件将被构建过程忽略。同时被includes和excludes匹配的资源文件,将被忽略。
filters,给出对资源文件进行过滤的属性文件的路径,默认位于${basedir}/src/main/filters/目录下。属性文件中定义若干键值对。在构建过程中,对于资源文件中出现的变量(键),将使用属性文件中该键对应的值替换。
testResources,test过程中涉及的资源文件,默认位于${basedir}/src/test/resources/目录下。这里的资源文件不会被构建到目标构件中

3)

给出构建过程中所用到的插件。





org.apache.maven.plugins
maven-jar-plugin
2.6
false
true

test





说明:

groupId
artifactId
version
extensions,是否加载该插件的扩展,默认false
inherited,该插件的configuration中的配置是否可以被(继承该POM的其他Maven项目)继承,默认true
configuration,该插件所需要的特殊配置,在父子项目之间可以覆盖或合并
dependencies,该插件所特有的依赖类库
executions,该插件的某个goal(一个插件中可能包含多个goal)的执行方式。一个execution有如下设置:
id,唯一标识
goals,要执行的插件的goal(可以有多个),如run
phase,插件的goal要嵌入到Maven的phase中执行,如verify
inherited,该execution是否可被子项目继承
configuration,该execution的其他配置参数

4)

中,并列,两者之间的关系类似于之间的关系。中也配置,其配置参数与中的完全一致。只是,往往出现在父项目中,其中配置的往往通用于子项目。子项目中只要在中以声明该插件,该插件的具体配置参数则继承自父项目中对该插件的配置,从而避免在子项目中进行重复配置。

  1. Project Build特有的<…Directory>

往往配置在父项目中,供所有父子项目使用。示例如下:

${basedir}/src/main/java

${basedir}/src/main/scripts

${basedir}/src/test/java

${basedir}/target/classes

${basedir}/target/test-classes


目录可以使用绝对路径,如示例所示。如果使用相对路径,则所有的相对路径都是在${basedir}目录下。

  1. Project Build特有的

是执行构建过程中可能用到的其他工具,在执行构建的过程中被加入到classpath中。

也可以通过激活构建插件,从而改变构建的过程。

通常,通过给出通用插件的一个具体实现,用于构建过程。

的使用示例如下:


org.apache.maven.wagon

wagon-ftp

1.0-alpha-3




发表评论

表情:
评论列表 (有 0 条评论,1044人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Maven Build Lifecycle

    Maven基于一个build lifecycle的中心概念,意味着构建和发布特定项目的过程是明确定义的。 对于人们构建一个项目,这意味着只需要学会少数命令就可以构建任意ma