当前位置: 首页 > news >正文

maven之pom中的build标签

1、build标签分类

1.1、全局配置(project build)

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

<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                       http://maven.apache.org/maven-v4_0_0.xsd">  ... <build>…</build> ...
</project> 

1.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  http://maven.apache.org/maven-v4_0_0.xsd">  ... <profiles>  <profile>  <!– "Profile Build" contains a subset of "Project Build"s elements –>  <build>…</build>  </profile>  </profiles>  ...
</project>  

2、build 配置说明

2.1、基本元素

<build><!-- 指定默认的 Maven 构建目标。当运行 mvn 命令时,将执行指定的目标(用不到) --><defaultGoal>install</defaultGoal><!-- 指定 Maven 构建输出的目录路径,下列是默认值-->	<directory>target</directory>  <finalName>${artifactId}-${version}</finalName><!-- 指定源代码文件的目录路径 --><sourceDirectory>src/main/java</sourceDirectory><!-- 指定脚本文件的源代码目录路径(用不到) --><scriptSourceDirectory>src/main/scripts</scriptSourceDirectory><!-- 指定test的源代码目录路径 --><testSourceDirectory>src/test/java</testSourceDirectory><!-- 指定编译后的类文件输出的目录路径 --><outputDirectory>target/classes</outputDirectory><!-- 指定编译后的test类文件输出的目录路径 --><testOutputDirectory>target/test-classes</testOutputDirectory><!-- 配置项目的资源目录, 例如配置文件、静态资源等 --><resources><resource><directory>src/main/resources</directory><!-- 可以有占位符,并替换占位符,即下面的${application.environment} --><filtering>true</filtering><includes><include>bootstrap.properties</include><include>bootstrap-${application.environment}.properties</include></includes></resource><resource><directory>src/main/resources</directory><!-- 没有占位符 --><filtering>false</filtering><includes><include>banner.txt</include><include>logback-spring.xml</include></includes></resource></resources><!-- 配置项目的test资源目录, 例如配置文件、静态资源等 --><testResources><testResource><directory>src/test/resources</directory></testResource></testResources><filters>  <filter>filters/filter1.properties</filter>  </filters>  <!-- 插件版本管理 --><pluginManagement><plugins><!-- Springboot项目打包插件,生成JAR包 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version></plugin><!-- Maven编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version></plugin></plugins></pluginManagement>...
</build>
  • defaultGoal :执行build任务时,如果没有指定目标,将使用的默认值。如上配置:在命令行中执行mvn,则相当于执行mvn install
  • directory :  构建结果输出目录,默认在${basedir}/target目录。
  • finalName :build目标文件的名称,默认情况为${artifactId}-${version}
  • sourceDirectory :主体源程序存放目录,默认在${basedir}/src/main/java
  • scriptSourceDirectory :脚本源程序存放目录,默认在: ${basedir}/src/main/scripts
  • testSourceDirectory :测试源程序存放目录,默认在${basedir}/src/test/java
  • outputDirectory :主体源程序编译结果输出目录,默认在${basedir}/target/classes
  • testOutputDirectory :测试源程序编译结果输出目录,默认在${basedir}/target/test-classes
  • resources :主体资源文件存放目录,默认在: ${basedir}/src/main/resources
  • testResources :测试资源文件存放目录,默认在: ${basedir}/src/test/resources
  • filters :给出对资源文件进行过滤的属性文件的路径,默认位于${basedir}/src/main/filters/目录下。属性文件中定义若干键值对。在构建过程中,对于资源文件中出现的变量(键),将使用属性文件中该键对应的值替换。

2.2、Resources配置

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

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

  • resources :一个resources元素的列表。每一个都描述与项目关联的文件是什么和在哪里。
    • targetPath :指定build后的resource存放的文件夹,默认是:${basedir}。通常被打包在jar中的resources的目标路径是META-INF
    • filtering : 构建过程中是否对资源进行过滤,默认false。
    • directory :定义resource文件所在的文件夹,默认为${basedir}/src/main/resources
    • includes :指定哪些文件将被匹配,以*作为通配符。
    • excludes :指定哪些文件将被忽略。
  • testResources :定义和resource类似,只不过在test时使用。

2.3、plugins配置 

<build>  ...  <plugins>  <!-- 插件的坐标。此处引用的 maven-compiler-plugin 插件不是第三方的,是一个 Maven 自带的插件。 --><plugin>  <groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version> <extensions>false</extensions>  <inherited>true</inherited>  <!-- configuration 标签:配置 maven-compiler-plugin 插件 --><configuration><!-- 具体配置信息会因为插件不同、需求不同而有所差异 --><classifier>test</classifier>                <source>1.8</source><target>1.8</target><encoding>UTF-8</encoding><dependencies>...</dependencies>  <executions>  <execution>  <id>pre-process-classes</id>  <!-- phase : 关联的生命周期阶段 --><phase>compile</phase><!-- goals/goal:关联指定生命周期的目标 -->					<goals>  <goal>jar</goal>  </goals>  <configuration>  <classifier>pre-process</classifier>  </configuration>  </execution>  </executions>  </plugin>  </plugins>  
</build>  

 用于指定使用的插件:

  • GAV(即: groupId、artifactId、version):指定插件的标准坐标。
  • extensions :是否加载该插件的扩展,默认false。
  • inherited :该插件的configuration中的配置是否可以被(继承该POM的其他Maven项目)继承,默认true
  • configuration :该插件所需要的特殊配置,在父子项目之间可以覆盖或合并。
  • dependencies :该插件所特有的依赖类库。
  • executions :该插件的某个goal(一个插件中可能包含多个goal)的执行方式。一个execution有如下设置:
    • id 唯一标识;
    • goals :执行目标的名称;
    • phase :execution标签要执行的Maven构建生命周期阶段.
    • inherited :该execution是否可被子项目继承;
    • configuration :该execution的其他配置参数;
    • profile:指定该execution标签在哪个profile中生效。

2.4.1、maven生命周期

详见:maven用久后必须了解的phase、goal参数及生命周期概念_maven goal参数-CSDN博客

  • 生命周期有三种,分别是clean,default,site
  • 每种生命周期都由多个阶段组成:
    • clean:默认是清除target目录中的所有文件,避免将历史版本打到新的包中造成一些不在预期中的问题。
    • process-resources:将资源文件src/main/resources下的文件复制到target/classes目录中。
    • compile:将src/main/java下的代码编译成 class 文件,也放到target/classes目录中。
    • process-test-resources:将资源文件src/test/resources下的文件复制到target/test-classes目录中。
    • test-compile:将src/test/java下的代码编译成 class 文件,也放到target/test-classes目录中。
    • test:运行单元测试并在target/surefire-reports中生成测试报告。
    • package:将资源文件、class文件、pom文件打包成一个jar包。
    • install:将生成的jar包推送到本地仓库中。
    • deploy:将生成的jar包推送到远程仓库中。
  • 执行构建时,会按照阶段顺序从上到下的执行,但只有绑定了插件目标的阶段才会执行;

2.4、pluginManagement配置 

        通过 pluginManagement 标签管理起来的插件就像 dependencyManagement 一样,子工程使用时可以省略版本号,起到在父工程中统一管理版本的效果。

<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>  

       

pluginManagement标签存放着几个极少用到的插件:

  • maven-antrun-plugin
  • maven-assembly-plugin
  • maven-dependency-plugin
  • maven-release-plugin

 被springboot-dependenciens管理的插件:

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

  上面是父工程的pom配置,在子pom中,我们只需要做配置即可,不需要版本号: 

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

相关文章:

maven之pom中的build标签

1、build标签分类 1.1、全局配置&#xff08;project build&#xff09; 针对整个项目的所有情况都有效。 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"htt…...

Cesium.js--》探秘Cesium背后的3D模型魔力—加载纽约模型

今天简单实现一个Cesium.js的小Demo&#xff0c;加强自己对Cesium知识的掌握与学习&#xff0c;先简单对这个开源库进行一个简单的介绍吧&#xff01; Cesium 是一个开源的地理空间可视化引擎&#xff0c;用于创建基于 Web 的三维地球应用程序。它允许开发人员在网页上呈现高度…...

.NET i18n 多语言支持与国际化

环境 WIN10 VS2022 .NET8 1.&#x1f44b;创建项目 2.&#x1f440;创建Resources Controllers HomeController.en.resx HomeController.fr.resx HomeController.zh.resx 3.&#x1f331;Program.cs添加国际化支持 // 添加国际化支持 builder.Services.AddLocalization(…...

基于Pytorch实现图像分类——基于jupyter

分类任务 网络基本构建与训练方法&#xff0c;常用函数解torch.nn.functional模块nn.Module模块 MNIST数据集下载 from pathlib import Path import requestsDATA_PATH Path("data") PATH DATA_PATH / "mnist"PATH.mkdir(parentsTrue, exist_okTrue)U…...

如何将CSDN的文章以PDF文件形式保存到本地

1.F12 打开开发者工具窗口 2.console下输入命令 (function(){$("#side").remove();$("#comment_title, #comment_list, #comment_bar, #comment_form, .announce, #ad_cen, #ad_bot").remove();$(".nav_top_2011, #header, #navigator").remove…...

面试经典150题——删除有序数组中的重复项

面试经典150题 day3 题目来源我的题解方法一 双指针 题目来源 力扣每日一题&#xff1b;题序&#xff1a;26 我的题解 方法一 双指针 使用两个指针分别指向相同元素的左右边界&#xff0c;再利用一个count记录最终需要的数组长度。 时间复杂度&#xff1a;O(n) 空间复杂度&a…...

Unity3D知识点精华浓缩

一、细节 1、类与组件的关系 2、Time.deltaTime的含义 3、怎么表示一帧的移动距离 4、Update和LateUpdate的区别和适用场景 5、找游戏对象的方式&#xff08;别的对象 / 当前对象的子对象&#xff09; 6、组件1调用组件2中方法的方式 7、在面板中获取外部数据的方法 8、序列化属…...

HTML的文档说明

1.告诉浏览器当前网页的版本 2.写法&#xff1a; &#xff01;以前的写法&#xff1a;要依据网页的HTML的版本去确定&#xff0c;紫萼发油很多很多。 具体的写法可以参考&#xff1a;W3C官网的文档说明 &#xff01;新写法&#xff1a;W3C都推荐用h5的写法 <DOCTYPE ht…...

ubuntu 更新或更改GCC/G++

最近遇到一些问题&#xff0c;需要用到gcc-9/g-9&#xff0c;但是我自带的ubuntu18.04是gcc-7.5/g-7.5&#xff0c;所以升级一下&#xff0c;奈何文章太多而且很多无效&#xff0c;所以在此记录一下&#xff1a; 参考&#xff1a;https://stackoverflow.com/questions/19836858…...

Java --- Java语言基础

这个Java可是个好东西&#xff0c;是一门面对对象的程序设计语言&#xff0c;其语法很类似C&#xff0c;所以学过C的伙伴们就很好上手&#xff0c;另外Java对C进行了简化与提高&#xff0c;这个在后期学习会感受到&#xff0c;Java还有很多的类库API文档以及第三方开发包。 这…...

【C++算法竞赛 · 图论】图的存储

前言 图的存储 邻接矩阵 方法 复杂度 应用 例题 题解 邻接表 方法 复杂度 应用 前言 上一篇文章中&#xff08;【C算法竞赛 图论】图论基础&#xff09;&#xff0c;介绍了图论相关的概念和一种图的存储的方法&#xff0c;这篇文章将会介绍剩下的两种方法&#xff…...

Spring AOP IOC

spring的优缺点 IOC集中管理对象&#xff0c;对象之间解耦&#xff0c;方便维护对象AOP在不修改原代码的情况下&#xff0c;实现一些拦截提供众多辅助类&#xff0c;方便开发方便集成各种优秀框架 紧耦合和松耦合 松耦合可以使用单一职责原则、接口分离原则、依赖倒置原则 …...

Linux ARM平台开发系列讲解(QEMU篇) 1.1 编译QEMU 构建RISC-V64架构 运行Linux kernel

1. 概述 QEMU可以模拟很多架构的CPU(ARM,RISC-V等),重点是免费,用来学Linux简直太适合不过了,所以,我打算开一章节来教QEMU的使用,这样也方便环境统一调试,本章节就讲解如何在Ubuntu搭建QEMU,我的环境是全新的Ubuntu22,QEMU下载的9.0,kernel下载的6.0. 2. 源码下载…...

Day19-【Java SE进阶】网络编程

一、网络编程 1.概述 可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。java.net,*包下提供了网络编程的解决方案! 基本的通信架构 基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)。 网络通信的…...

pyqt写个星三角降压启动方式2

星三角降压启动用可以用类进行封装&#xff0c;就像博图FB块那样。把逻辑都在类里完成&#xff0c;和外界需要交互的暴露出接口。测试过程中&#xff0c;发现类中直接用定时器QTimer会出现问题。然后就把定时器放到外面了。然后测试功能正常。 from PySide6.QtWidgets import …...

js可视化爬取数据生成当前热点词汇图

功能 可以爬取到很多数据&#xff0c;并且生成当前的热点词汇图&#xff0c;词越大越热门&#xff08;词云图&#xff09; 这里以b站某个评论区的数据为例&#xff0c;爬取63448条数据生成这样的图片 让我们能够更加直观的看到当前的热点 git地址 可以直接使用&#xff0c;中文…...

研发岗-面临统信UOS系统配置总结

第一步 获取root权限 配置环境等都需要用到root权限&#xff0c;所以我们先获取到root权限&#xff0c;方便下面的操作 下载软件 在UOS应用商店下载的所需应用 版本都比较低 安装node 官网下载了【arm64】的包&#xff0c;解压到指定文件夹&#xff0c;设置链接&#xff0…...

【STL详解 —— list的介绍及使用】

STL详解 —— list的介绍及使用 list的介绍list的介绍使用list的构造list iterator的使用list capacitylist element accesslist modifiers 示例list的迭代器失效 list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭…...

cocos creator开发中遇到的问题和解决方案

前言 总结一下使用cocos开发遇到的坑&#xff0c;不定期更新。 问题汇总 代码修改Position坐标不生效 首先要通过打log或者断点排除下是不是逻辑上的问题&#xff0c;还有是不是有动画相关把位置修改了。我遇到的问题是坐标修改被widget组件覆盖了。 纹理压缩包体变大 co…...

10分钟带你学会配置DNS服务正反向解析

正向解析 服务端IP客户端IP网址192.168.160.134192.168.160.135www.openlab.com 一、首先做准备工作&#xff1a; 关闭安全软件&#xff0c;关闭防火墙&#xff0c;下载bind软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# y…...

【vim 学习系列文章 19 -- 映射快捷键调用两个函数 A 和B】

请阅读【嵌入式开发学习必备专栏 之 Vim】 文章目录 映射快捷键调用两个函数 映射快捷键调用两个函数 在 Vim 中&#xff0c;如果想通过按下 gcm 来调用两个函数&#xff0c;比如 FunctionA 和 FunctionB&#xff0c;需要先定义这两个函数&#xff0c;然后创建一个映射。这个映…...

Windows安装MongoDB结合内网穿透轻松实现公网访问本地数据库

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

sgg大数据全套技术链接[plus]

写在开头&#xff1a;感谢尚硅谷&#xff0c;尚硅谷万岁&#xff0c;我爱尚硅谷 111个技术栈43个项目&#xff0c;兄弟们&#xff0c;冲&#xff01; 最近小米又又又火了一把&#xff0c;致敬所有造福人民的企业和伟大的企业家&#xff0c;致敬雷军&#xff0c;小米&#xff…...

OpenHarmony南向嵌入式:【XR806开发板指导文档】

一. 简介 芯片介绍 XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片&#xff0c;支持OpenHarmony轻量设置系统。具有集成度高、硬件设计简单、BOM成本低、安全可靠等优点。可广泛满足 智能家居、智慧楼宇、工业互联、儿童玩具、电子竞…...

Rust 实战练习 - 10. JSON、XML、YAML/TOML、Ini专题

配置文件 常见的配置文件有很多&#xff1a;JSON, Ini, XML, TOML, YAML … 目标&#xff1a; JSON/YAML/TOMLIniXML Rust中序列化用的最多的是 serde, 依赖它&#xff0c;有很多出色的第三方库可以使用。 其中&#xff0c;serde本身支持JSON/YAML/TOML/JSON5…多种&#…...

5.Hexo为页面标记标签和类别

Hexo的标签和类别基本上是可以在Hexo中将内容分组的两种方式 如果在网站上有一堆内容&#xff0c;有不同的博客文章 将博客文章分类为不同的类别会很有帮助 用特定的关键词为博客文章标记 如果可以同时分类和标记页面&#xff0c;会使网站用户更轻松地找到他们想要的页面类型 …...

·13·1dawwd

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…...

Docker - PostgreSQL

博文目录 文章目录 说明命令 说明 Docker Hub PostgreSQL 数据卷数据卷印射在容器内的路径postgres/var/lib/postgresql/data |容器内的路径|说明| |–|–|–| |/var/lib/postgresql/data|数据目录| 部分环境变量是否必要说明POSTGRES_PASSWORD必需设置超级用户密码POSTGRES…...

Python | Leetcode Python题解之第26题删除有序数组中的重复项

题目&#xff1a; 题解&#xff1a; class Solution:def removeDuplicates(self, nums: List[int]) -> int:if not nums:return 0n len(nums)fast slow 1while fast < n:if nums[fast] ! nums[fast - 1]:nums[slow] nums[fast]slow 1fast 1return slow...

【电控笔记4】拉普拉斯-传递函数-pid

数据标幺化 拉普拉斯变换 欧拉公式 常见s变换 s变换性质...

wordpress 说明文档下载/打开全网搜索

敏捷开发&#xff08;agile development&#xff09;是非常流行的软件开发方法。据统计&#xff0c;2018年90%的软件开发采用敏捷开发。 但是&#xff0c;到底什么是敏捷开发&#xff0c;能说清的人却不多。本文尝试用简洁易懂的语言&#xff0c;解释敏捷开发。 一、迭代开发 敏…...

那个网站做调查问卷能赚钱/北京seo公司工作

在工程目录下创那一个路径为&#xff1a;com.oid.internal.telephony.ITelephony.java的接口文件 ITelephony.java内空 package oid.internal.telephony; interface ITelephony { boolean endCall(); void answerRingingCall(); } 创建好后&#xff0c;系统会自动在…...

app开发公司 弙东/谷歌seo课程

软文推广比传统推广更加容易让大众接受&#xff0c;因为其“含蓄”的软文营销植入广告营销被作为整合营销传播的一个重要支点。软文推广也有自己的特点和禁区&#xff0c;不是随随便便就能拿捏准确&#xff0c;只有明白了软文营销的特殊性才能玩儿得转。 1、不了解软文推广相关…...

装修网站建设/百度网站快速优化

https://community.fs.com/blog/do-you-know-the-differences-between-hubs-switches-and-routers.html 介绍hub&#xff0c;switch&#xff0c;router&#xff0c;有动图&#xff0c;很形象 http://blog.csdn.net/wuruixn/article/details/8350773 介绍交换机和路由器 http://…...

做养生产品哪个网站好/友情链接又称

Java参数传值&#xff1a;特点&#xff1a;1、参数属于局部变量&#xff1b;2、当对象调用方法时&#xff0c;参数被分配内存空间&#xff0c;同时要求对象为参数传值才能进行使用&#xff0c;即方法被调用时&#xff0c;参数变量必须有具体的值&#xff1b;如下代码演示&#…...

网站怎样做wap端/国内新闻最新消息十条

第1关:通信簿.csv文件进行查询 本关任务:编写函数cztxb,实现根据姓名对通信录.csv文件查询。输入查询的姓名,若文件中存在该人,显示其信息;当查询的姓名不存在时,显示“查无此人”。 #当前位置的sc文件夹下csv格式文件“通信簿”, #该文件每行记录一个姓名、住址、电话…...