Maven的pom.xml文件详解------Build Settings
来源:互联网 发布:土石方算量软件 编辑:程序博客网 时间:2024/06/05 10:20
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
...
...
...
BaseBuild元素集合
basic elements
install
${basedir}/target
${artifactId}-${version}
filters/filter1.properties
...
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
build的另一个特征是指定你的项目中resources的位置。resources(通常)不是代码,他们不被编译,但是被绑定在你的项目或者用于其它什么原因,例如代码生成。
...
META-INF/plexus
false
${basedir}/src/main/plexus
configuration.xml
**/*.properties
...
...
1、resources:一个resource元素的列表,每一个都描述与项目关联的文件是什么和在哪里;
2、targetPath:指定build后的resource存放的文件夹。该路径默认是basedir。通常被打包在JAR中的resources的目标路径为META-INF;
3、filtering:true/false,表示为这个resource,filter是否激活。
4、directory:定义resource所在的文件夹,默认为${basedir}/src/main/resources;
5、includes:指定作为resource的文件的匹配模式,用*作为通配符;
6、excludes:指定哪些文件被忽略,如果一个文件同时符合includes和excludes,则excludes生效;
7、testResources:定义和resource类似,但只在test时使用,默认的test resource文件夹路径是${basedir}/src/test/resources,test resource不被部署。
Plugins
...
org.apache.maven.plugins
maven-jar-plugin
2.0
false
true
test
...
...
除了groupId:artifactId:version标准坐标,plugin还需要如下属性:
1、extensions:true/false,是否加载plugin的extensions,默认为false;
2、inherited:true/false,这个plugin是否应用到该POM的孩子POM,默认true;
3、configuration:配置该plugin期望得到的properies,如上面的例子,我们为maven-jar-plugin的Mojo设置了classifier属性;
如果你的POM有一个parent,它可以从parent的build/plugins或者pluginManagement集成plugin配置。
为了阐述继承后的关系,考虑如果parent POM中存在如下plugin:
my.group
my-plugin
parent-1
parent-2
parent
然后在继承的孩子POM中做如下配置:
my.group
my-plugin
child-1
child
这样孩子POM和parent POM中都存在groupId为my.group的plugin,Maven默认的行为将是根据属性名称将两个plugin的configuration的内容进行合并。如果孩子POM中有一个属性,则该属性是有效的,如果孩子POM中没有一个属性,但parent POM中存在,则parent中的属性是有效的。
根据这些规则,上面的例子在Maven中将得到:
my.group
my-plugin
child-1
child
parent
通过在configuration元素中增加combine.children和combine.self属性,孩子POM可以控制Maven怎么合并plugin的configuration。新都男性前列腺炎吃什么药好?
假定这儿是孩子POM的configuration:
child-1
child
则,现在合并后的效果如下:
combine.children="append"表示父POM和子POM的属性合并起来;
combine.self="override"表示子POM的属性完全覆盖父POM的。
4、dependencies:同base build中的dependencies有同样的结构和功能,但这里是作为plugin的依赖,而不是项目的依赖。
5、executions:plugin可以有多个目标,每一个目标都可以有一个分开的配置,甚至可以绑定一个plugin的目标到一个不同的阶段。executions配置一个plugin的目标的execution。
假定一项绑定antrun:run目标到verify阶段,我们希望任务响应build文件夹,同时避免传递配置到他的孩子POM。你将得到一个execution:
maven-antrun-plugin
1.1
echodir
run
verify
false
Build Dir: ${project.build.directory}
id:标识,用于和其他execution区分。当这个阶段执行时,它将以这个形式展示:[plugin:goal execution: id]。在这里为: [antrun:run execution: echodir];新都男性阴茎可以增大吗?
goals:一个plugin的execution的目标列表;
phase:目标执行的阶段,具体值看Maven的生命周期列表;
inherited:是否继承;
configuration:在指定的目标下的配置。
Plugin Management
pluginManagement的元素的配置和plugins的配置是一样的,只是这里的配置只是用于集成,在孩子POM中指定使用。例如,在父POM中做如下配置:
...
org.apache.maven.plugins
maven-jar-plugin
2.2
pre-process-classes
compile
jar
pre-process
...
则在孩子POM中,我们只需要配置:
...
org.apache.maven.plugins
maven-jar-plugin
...
这样就可以大大的简化孩子POM中的配置。
Reporting
Reporting包含的属性对应到site阶段(见Maven生命周期)。特定的Maven插件能产生定义和配置在reporting元素下的报告,例如:产生Javadoc报告。新都男性龟头炎有哪些症状?
${basedir}/target/site
maven-project-info-reports-plugin
2.0.1
对于reportSets:
sunlink
javadoc
true
- Maven的pom.xml文件详解------Build Settings
- Maven的pom.xml文件详解------Build Settings
- Maven的pom.xml文件详解------Build Settings
- Maven的pom.xml文件详解------Build Settings
- Maven的pom.xml文件详解------Build Settings
- Maven的pom.xml文件详解------Environment Settings
- Maven的pom.xml文件详解------Environment Settings
- Maven pom.xml与settings.xml详解
- Maven的pom.xml文件结构之Build配置build
- Maven的pom.xml文件结构之Build配置build
- Maven的pom.xml文件结构之Build配置build
- Maven的settings.xml文件结构详解
- Maven的settings.xml文件结构详解
- Maven的pom.xml文件详解
- maven的pom.xml文件详解
- Maven的pom.xml文件详解
- Maven的pom.xml文件结构详解
- 史上最全的maven pom.xml文件详解
- 360首席科学家颜水成:我们如何做人工智能?
- 苹果投资滴滴前,柳青在彭博社说了这些
- 腾讯安全问鼎GeekPwn的背后:人才优势催动平台价值聚变
- 腾讯携手12321试水互联网+城市服务新模式
- 63. Unique Paths II
- Maven的pom.xml文件详解------Build Settings
- SESSION的工作原理详解
- Springmvc——(1)环境搭建
- 重定位及动态链接
- sea.js
- 让自动驾驶汽车的行为更像人类,奥迪是这么做的
- JQuery EasyUI
- 抗衰实验新进展:在狗身上成功实验
- CESA展上那些组队而来的舶来品|CES Asia