首页 > Maven build标签

Maven build标签

前言:

   设置,主要用于编译设置



1.分类

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

(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">  ...    <build>...build>  <profiles>  <profile>    <build>...build>  profile>  profiles>  
project>  

说明:

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

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

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

2. 配置说明

1.基本元素

示例如下

<build>  <defaultGoal>installdefaultGoal>  <directory>${basedir}/targetdirectory>  <finalName>${artifactId}-${version}finalName> 

<filters>

<filter>filters/filter1.propertiesfilter>

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/plexustargetPath>  <filtering>truefiltering>  <directory>${basedir}/src/main/plexusdirectory>  <includes>  <include>configuration.xmlinclude>  includes>  <excludes>  <exclude>**/*.propertiesexclude>  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.pluginsgroupId>  <artifactId>maven-jar-pluginartifactId>  <version>2.0version>  <extensions>falseextensions>  <inherited>trueinherited>  <configuration>  <classifier>testclassifier>  configuration>  <dependencies>...dependencies>  <executions>...executions>  plugin>  plugins>  
build>  

  4  pluginManagement配置

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

       父pom:

<build>  ...  <pluginManagement>  <plugins>  <plugin>  <groupId>org.apache.maven.pluginsgroupId>  <artifactId>maven-jar-pluginartifactId>  <version>2.2version>  <executions>  <execution>  <id>pre-process-classesid>  <phase>compilephase>  <goals>  <goal>jargoal>  goals>  <configuration>  <classifier>pre-processclassifier>  configuration>  execution>  executions>  plugin>  plugins>  pluginManagement>  ...  
build>  

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

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

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

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

更多相关:

  • 在config/index.js中的build下面找到productionSourceMap设置为false,cnpm run build试试看就发现文件小很多了  ...

  •   build number, 也称为build id, 在build release的流程中唯一标示一个build,也是正式的产品的product version 和file version后两位(Major.minor.xxx.xxx)的来源,可以使用合适的方法将build number转化到product version和fil...

  • ue4商城资源 Car Configurator Template 汽车配置器模板 ue4商城资源 Car Configurator Template 汽车配置器模板 Unreal Engine虚幻游戏引擎素材资源 Unreal Engine Marketplace –Car Configurator Template 4...

  • 一直在尝试一些写代码方便,阅读代码也很方便的工具,因为使用的是Mac,所以阅读源码上面sourceInsight就没办法用了。 从vscode – sublime – clion 想要可配置性强一点,软件轻一点,也能提供足够的便捷操作,不论是写代码还是快速索引源码,都希望在检索上面节省足够的时间。 vscode 和 sublime...

  • 每日杂事缠身,让自己在不断得烦扰之后终于有了自己的清静时光来熟悉一下我的工具,每次熟悉源码都需要先在windows端改好,拖到linux端,再编译。出现问题,还得重新回到windows端,这个过程太耗费时间。 vim作为唯一能够和windos 下的source insight一争高低的linux端的源码阅读器,只要将它短时间内合理利用...

  • 使用ubuntu(18.04) 作为软路由器连接互联网 背景: 最近要用ubuntu机器作为中继路由,需要配置一下,但是内网外网网上找了一圈,五花八门的,照着做没有一个靠谱的,遇到的问题也没有任何说明,遂写一篇教程以记录一下 功能说明: 简单来说,就是用其他机器的网络上互联网, 比如可以用其他机器的wifi上网等等场景 示意...

  • Spring-Boot 攻略 day01 spring-boot 一. 基本配置加运行 1. 导入配置文件(pom.xml 文件中) org.springframework.bootspring-boot-starter-parent

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...