首页 > 其他分享 >maven--插件的管理(pluginManagement)

maven--插件的管理(pluginManagement)

时间:2024-02-10 16:11:07浏览次数:32  
标签:插件 -- boot springframework maven pom pluginManagement

 

原文网址:​​maven--插件的管理(pluginManagement)_IT利刃出鞘的博客-CSDN博客​

简介

说明

本文介绍maven如何使用pluginManagement来管理插件(build标签中的plugins标签)。

概述

Maven 使用 dependencyManagement 对依赖进行管理,见:​​这里​​,与之类似地,Maven 中还提供了一个名为 pluginManagement 的元素,它可以帮助用户管理 Maven 插件。

pluginManagement 元素与 dependencyManagement 元素的原理十分相似,在 pluginManagement 元素中可以声明插件及插件配置,但不会发生实际的插件调用行为,只有在 POM 中配置了真正的 plugin 元素,且其 groupId 和 artifactId 与 pluginManagement 元素中配置的插件匹配时,pluginManagement 元素的配置才会影响到实际的插件行为。

分享一套真实高频的Java面试题:​​自学精灵 - IT技术星球​

示例

假如存在两个项目,项目A为公共项目,项目B将其作为父项目(项目B指定parent为项目A),其关系通过pom文件的关系确定。

项目A的pom.xml

关键部分

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.13</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

整个XML

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.13</version>
        <relativePath/>
    </parent>
    
    <groupId>com.knife.example</groupId>
    <artifactId>common-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <packaging>pom</packaging>
    <name>common-parent</name>
    <description>Demo project for Spring Boot</description>

    <dependencies>
        
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>2.4.13</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

</project>

项目B的pom.xml

关键部分

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

整个pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.knife.example</groupId>
        <artifactId>common-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath/>
    </parent>
    
    <groupId>com.knife.example</groupId>
    <artifactId>order</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <packaging>jar</packaging>
    <name>order</name>
    <description>Demo project for Spring Boot</description>

    <dependencies>
        
    </dependencies>

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

</project>

可以看到,子pom文件中,省去了版本、配置细节等信息,只需要指定groupId和artifactId,其他信息均从父pom文件继承。

当然,如果子pom文件想定制自己的特定内容,可以另行设置,并会覆盖从父pom文件继承到的内容。

 

标签:插件,--,boot,springframework,maven,pom,pluginManagement
From: https://www.cnblogs.com/knifeblade/p/18012900

相关文章

  • 全基因组测序流程 | WGS pipeline
     创建conda环境,安装必要软件condacreate-nwgscondaactivatewgscondainstallbioconda::bwa 下载最佳reffastagcloudstoragecpgs://BUCKET_NAME/OBJECT_NAMESAVE_TO_LOCATIONgs://gcp-public-data--broad-references/hg38/v0/Homo_sapiens_assembly38.fastaR......
  • 字符串2
    思路......
  • Locust简单学习记录
    locust性能测试框架1、locust原理(感觉讲的很好,完全摘抄的,原地址:https://www.cnblogs.com/ywt798/p/16138472.html)  locust为什么能够识别写的代码和运行?locust基于两个类,继承两个类才能实现模拟用户行为:TaskSet类(模拟请求的行为,任务):locust里面的类,继承Task......
  • POJ--3764 The xor-longest Path(Trie)
    记录13:562024-2-10找到俩个点,获得最大的边权异或值。利用异或的性质,一个值被异或俩次相当于没有异或即axorbxorb=a所以先从顶点出发,获得每个点路径上的异或值,然后对这俩个值进行异或就获得了他们之间路径的异或值。获取从顶点到每个点路径上的异或值后,可以利用trie来......
  • 在k8S中,外部如何访问集群内的服务?
    在Kubernetes(k8s)中,要让外部客户端能够访问集群内的服务,通常有以下几种方式:NodePort:创建一个类型为NodePort的服务,这会在每个工作节点上开放一个特定端口(系统自动分配或用户指定的范围内的端口),并将流量转发到对应Service背后的Pod。外部客户端可以通过任意节点的IP地址和......
  • 冗余路径
    这道题目是一个模型:给连通的无向图加边,使得无向图没有桥(即变成边双连通分量),最小化加边数因为边双连通分量本来就没有桥,所以我们考虑对整个图求一遍边双连通分量(使用tarjan算法),然后将边双连通分量缩为一个点考虑。那么缩完点后得到的图一定是一棵树(因为图中不可能存在环)然后要......
  • QOJ 8171 - Cola
    我们假设目前B知道排列\(p\)的前\(x\)位是多少,那么下一次,B的最优策略是:对于\(i\lex\)的部分,令\(q_i=p_i\)。对于\(i=x+1\)的部分,令\(q_i\)为任一\(p_i\)可能取到但没有被猜过的值。对于\(i>x+1\),随机乱排剩余的\(q_i\)。考虑设\(c_i\)表示第\(i\)次......
  • Atcoder Grand Contest 056 B - Range Argmax
    因为一组\(x\)可能对应多组\(p\),考虑怎么让决策唯一化。我们从大到小依次钦定每个值的位置,即倒着遍历\(i=n,n-1,\cdots,1\),找到最左端的位置\(v\)满足,对于现在还活着的所有区间\(j\)满足\(l_j\lev\ler_j\),都有\(x_j=v\),令\(p_j=i\),然后删去所有包含\(i\)的区间。......
  • Atcoder Grand Contest 041 F - Histogram Rooks
    考虑容斥。我们钦定一些格子组成的集合不能被覆盖,设为\(A\)。把与\(A\)中的点同行同列的点抠掉,剩余的点则是可放可不放的,总方案数就是\(2^{\text{剩余点的个数}}\),乘以\((-1)^{|A|}\)并求和即可。这个做法直接优化显然不行。我们考虑设\(A\)中的点所在的列组成的不可重集......
  • 计网前导知识
    一、网络、互联网、因特网的关系​ 二、计算机网络的定义和分类1.按交换方式区分​ 2.按使用者分类​ 3.按传输介质分类​ 4.按覆盖范围分类​ 5.按拓扑结构分类​ 总线型、星型、环形、网状型三、计算机网络的性能指标1.速率​ 2.带宽​ 3.吞吐量​ 4.时延......