前言:

<build >设置,主要用于编译设置

1.分类

在Maven的pom.xml文件中,存在如下两种<build>:

(1)全局配置(project build)

针对整个项目的所有情况都有效

(2)配置(profile build)

针对不同的profile配置

<project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">  ...  <!-- "Project Build" contains elements of the BaseBuild set and the Build set-->  <build>...</build>  <profiles>  <profile>  <!-- "Profile Build" contains elements of the BaseBuild set only -->  <build>...</build>  </profile>  </profiles>
</project>  

说明:

一种<build>被称为Project Build,即是<project>的直接子元素。

另一种<build>被称为Profile Build,即是<profile>的直接子元素。

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

2. 配置说明

1.基本元素

示例如下

<build>  <defaultGoal>install</defaultGoal>  <directory>${basedir}/target</directory>  <finalName>${artifactId}-${version}</finalName>   <filters>   <filter>filters/filter1.properties</filter>  </filters>   ...</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

 2. Resources配置

用于包含或者排除某些资源文件

<build>  ...  <resources>  <resource>  <targetPath>META-INF/plexus</targetPath>  <filtering>true</filtering>  <directory>${basedir}/src/main/plexus</directory>  <includes>  <include>configuration.xml</include>  </includes>  <excludes>  <exclude>**/*.properties</exclude>  </excludes>  </resource>  </resources>  <testResources>  ...  </testResources>  ...
</build>  

1)resources

一个resources元素的列表。每一个都描述与项目关联的文件是什么和在哪里

2)targetPath

指定build后的resource存放的文件夹,默认是basedir。

通常被打包在jar中的resources的目标路径是META-INF

3)filtering

true/false,表示为这个resource,filter是否激活
             4)directory

定义resource文件所在的文件夹,默认为${basedir}/src/main/resources

5)includes

指定哪些文件将被匹配,以*作为通配符

6)excludes

指定哪些文件将被忽略

7)testResources

定义和resource类似,只不过在test时使用

 3 plugins配置

用于指定使用的插件

<build>  ...  <plugins>  <plugin>  <groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-jar-plugin</artifactId>  <version>2.0</version>  <extensions>false</extensions>  <inherited>true</inherited>  <configuration>  <classifier>test</classifier>  </configuration>  <dependencies>...</dependencies>  <executions>...</executions>  </plugin>  </plugins>
</build>  

  4  pluginManagement配置

pluginManagement的配置和plugins的配置是一样的,只是用于继承,使得可以在孩子pom中使用。

父pom:

<build>  ...  <pluginManagement>  <plugins>  <plugin>  <groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-jar-plugin</artifactId>  <version>2.2</version>  <executions>  <execution>  <id>pre-process-classes</id>  <phase>compile</phase>  <goals>  <goal>jar</goal>  </goals>  <configuration>  <classifier>pre-process</classifier>  </configuration>  </execution>  </executions>  </plugin>  </plugins>  </pluginManagement>  ...
</build>  

则在子pom中,我们只需要配置:

<build>  ...  <plugins>  <plugin>  <groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-jar-plugin</artifactId>  </plugin>  </plugins>  ...
</build>  

这样大大简化了孩子pom的配置

转载于:https://www.cnblogs.com/whx7762/p/7911890.html

Maven build标签相关推荐

  1. maven build 配置

    maven build 配置 为了统一管理版本号,可以使用properties标签,里面可以自定义版本的标签名.在使用的地方使用${自定义标签名} build配置 <build><! ...

  2. eclipse中的maven build 、maven clean 、 maven install作用

    eclipse中的maven build .maven clean . maven install作用 转载于:https://www.cnblogs.com/ZeGod/p/10483605.htm ...

  3. eclipse中的maven build、maven clean、maven install和maven test的区别

    eclipse中的maven build.maven clean.maven install和maven test的区别 https://www.cnblogs.com/Marydon20170307 ...

  4. 如何研究Maven build时发生了哪些事情

    Sent: Friday, April 10, 2015 4:11 PM Subject: 如何研究Maven build时发生了哪些事情 有同事说对Maven build的过程感到很神秘,觉得是个黑 ...

  5. 如何处理Maven build错误 Non-Resolvable parent POM

    使用Maven build project时遇到如下error message: 打开build debug mode, 观察debug information的输出: 读取的setting文件pat ...

  6. clipse中使用maven插件的时候,运行run as maven build的时候报错:

    clipse中使用maven插件的时候,运行run as maven build的时候报错: -Dmaven.multiModuleProjectDirectory system propery is ...

  7. maven插件打包exec_Exec Maven插件–从Maven Build运行Java程序

    maven插件打包exec Maven exec plugin allows us to execute system and Java programs from the maven command ...

  8. 在eclipse如何删除无效的maven build

    在Eclipse的maven项目中,点击一次"maven build..."明明没有配置,它也就会产生一个maven build,那么如何删除这些无效的配置呢?

  9. java build failed_java - maven build failed:无法在jre或jdk issu中找到Javac编译器

    java - maven build failed:无法在jre或jdk issu中找到Javac编译器 我将JAVA_HOME设置为 C:\Program Files (x86)\Java\jdk1 ...

最新文章

  1. python用渐变色画圆_利用python控制Autocad:pyautocad方式
  2. iframe 父窗口和子窗口相互的调用方法集锦
  3. python圆柱体,用PYTHON将圆柱体分散到3D XYZ点数据
  4. python程序设计实验教程 翟萍 第五章答案_Python程序设计实验教程
  5. Method Overloading
  6. 请给出一个时间为O(nlgk)、用来将k个已排序链表的算法。此处n为所有输入链表中元素的总数。...
  7. Matlab--三维散点插值成曲面
  8. 【英语学习】【Level 08】U03 My Choice L5 The star that shines the brightest
  9. Ising模型(伊辛模型)
  10. FormatMessage函数
  11. TensorFlow 强化学习快速入门 -- Kaushik Balakrishnan 读后感
  12. html返回顶部开始隐藏,回到顶部并且监听顶部按钮显示或隐藏
  13. vmplayer网络配置详解
  14. MintUI(详见官方文档)
  15. C#上位机与欧姆龙PLC通讯(FINS)
  16. 废柴日记之国庆特辑:那些年我们一直分不清楚的近义词们②
  17. 简谈五线制交流道岔控制电路故障的处理方法【铁路信号技术专栏】——转自微信公众号高速铁路信号技术交流
  18. MMO游戏服务器从零开发(架构篇)- 网络部分
  19. 泛函分析和他的基础概念
  20. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用44

热门文章

  1. C++标准库简介(转)
  2. 关于矩形连线 (rectangle connect)
  3. C++数组名做函数形参/指针
  4. linux shell cgi post,linux下shell处理cgi的方法--post get
  5. nginx在linux下安装,Nginx在linux下安装及简单命令
  6. jsp与java的关系_jsp教程中:jsp与servlet的区别和关系
  7. java 初始化系统参数_系统中参数的初始化 参数在系统中配置
  8. 基于Python的人脸自动戴口罩系统
  9. face-swap.zip百度网盘下载
  10. python动态类型是如何实现的_Python 的动态类型系统