首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

具有maven shade插件的父和子pom布局

是一种常见的项目结构布局,用于构建Java项目并生成可执行的独立JAR文件。下面是对该布局的详细解释:

  1. 父POM(Parent POM):父POM是一个包含了通用配置和依赖管理的Maven项目。它通常作为一个顶层项目,用于管理多个子项目的共享配置和依赖。在父POM中,可以配置maven shade插件以及其他常用插件和构建配置。
  2. 子POM(Child POM):子POM是父POM的直接子项目,每个子项目都有自己的独立配置和依赖。子POM可以继承父POM的配置和依赖,并可以根据需要进行覆盖或扩展。在子POM中,可以配置maven shade插件的具体参数,以定制生成可执行JAR文件的行为。

Maven Shade插件是一个用于构建可执行JAR文件的Maven插件。它可以将项目的所有依赖打包到生成的JAR文件中,以便于在没有外部依赖的情况下运行项目。这对于分发和部署独立的Java应用程序非常有用。

具体使用maven shade插件的父和子pom布局的步骤如下:

  1. 在父POM中配置maven shade插件:
代码语言:txt
复制
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.2.4</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
            <!-- 配置插件参数 -->
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
  1. 在子POM中继承父POM的配置,并根据需要覆盖或扩展maven shade插件的参数:
代码语言:txt
复制
<parent>
  <groupId>com.example</groupId>
  <artifactId>parent</artifactId>
  <version>1.0.0</version>
</parent>

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <configuration>
        <!-- 配置插件参数 -->
      </configuration>
    </plugin>
  </plugins>
</build>

通过使用maven shade插件的父和子pom布局,可以方便地管理项目的依赖和构建配置,并生成包含所有依赖的可执行JAR文件。这在一些需要将应用程序打包为独立可运行文件的场景中非常有用,例如命令行工具、独立的服务等。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云Maven仓库:https://cloud.tencent.com/document/product/1093/35638
  • 腾讯云云服务器CVM:https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储COS:https://cloud.tencent.com/product/cos
  • 腾讯云云原生容器服务TKE:https://cloud.tencent.com/product/tke
  • 腾讯云人工智能AI:https://cloud.tencent.com/product/ai
  • 腾讯云物联网IoT Hub:https://cloud.tencent.com/product/iothub
  • 腾讯云移动开发移动推送:https://cloud.tencent.com/product/umeng
  • 腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云区块链服务BCS:https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙服务:https://cloud.tencent.com/product/metaspace
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

maven 打的包在哪_maven打包流程学习「建议收藏」

(X)下工程,因为A是一个springboot项目,所以工程X就把parent设置成了: org.springframework.boot spring-boot-starter-parent 2.0.1...于是我使用了这个打包插件: org.apache.maven.plugins maven-shade-plugin 3.1.1 package shade implementation=”org.apache.maven.plugins.shade.resource.ManifestResourceTransformer...很幸运找到了这篇文章maven内部运行原理解析 具体细节我就不描述了,看到这里,我疑问是,文章中提到,每一个plugin,都要有一个表明该插件是在哪个阶段执行哪个方法。...help:effective-pomhelp:effective-settings最为有用,它们分别打印项目的有效POM有效settings,有效POM是指合并了所有POM(包括Super POM...此外,maven-help-plugindescribe目标可以帮助你描述任何一个Maven插件信息,还有all-profiles目标active-profiles目标帮助查看项目的Profile

1.7K20

Maven打包之maven-shade-plugin

打包是一个比较头疼事情,默认maven打包结果只包含项目本身代码,如果要执行代码,还得带上依赖。maven-shade-plugin插件就能够帮我们把项目依赖包也打进最终文件。...shade打包过程 shade插件绑定在mavenpackage阶段,他会将项目依赖jar包解压并融合到项目自身编译文件中。...如果shade只有这一个功能,那它并不能够满足开发者需求。因此,它提供了ResourceTransformer接口,处理扫描到资源文件,修改最终输出结果,这个功能正是大家所需要。...--只包含该项目代码中用到jar,在项目中引入了,但在当前模块中没有用到就会被删掉--> true...如果项目要求不能融合或者融合会出错,那么建议使用assembly插件打包。 参考 Apache Maven Shade Plugin maven-shade-plugin 简书

15.5K30

Java EE7Maven工程入门(2)

在webapp文件夹下我已经提前创建好了\web-INF\web.xml文件。可以跳过这个环节,因为maven插件可以帮我做这个工作。...我们根据这个布局然后添加一个非常简单servlet java文件很少xml描述符。这才是真正意图所在。...maven最爽事情就是,war模块一些需要去构建东西已经在这个特殊pom文件里面被预先定义配置好了。但是这些东西是什么,maven将如何去使用它们?正如我们已经描述了Maven全部约定。...当我们项目有好几个war或者jar模块情况时候,如果我们有一个pom,并且我们已经为它定义了一个中央位置插件基本配置,那么我们就没必要去在其他那些war或者jar模块重新定义他们。...只有当其中war或者jar模块需要特别对待时候(例如,打包一些额外东西或者有一个特殊文件设计布局)。那么在这个项目部分我们需要重新定义插件重写或者添加一些其他东西。

50920

聊聊如何避免多个jar通过maven打包成一个jar,多个同名配置文件发生覆盖问题

如果不进行处理,直接打包,就会出现同名配置文件覆盖情况 本文就是要来聊聊当多个jar合并成一个jar,如何解决多个同名配置文件覆盖情况 解决思路 通过maven-shade-plugin这个插件,利用插件...这个插件扩展配置,比maven-shade-plugin复杂一些,于是放弃。...扩展思路 我并没采用直接修改maven-shade-plugin插件方式,而是在maven-shade-plugin打包后基础上,再进行插件定制。...spring-factories-merge-plugin执行生命周期都是相同阶段,比如都是在package时,则maven-shade-plugin放置顺序得在spring-factories-merge-plugin...比如版本占位符插件flatten-maven-plugin在dubbospringboot都有看到使用。

1.6K70

spring-boot-starter大力出奇迹

一、前言 ​  上篇文章我们已经聊了SpringBoot启动过程中各类扩展点,那么从http://start.spring.io上我们生成demo项目中,到目前就剩下了maven工程pom.xml...首先映入眼帘是:标签,熟悉Maven朋友都知道,这个标签用来定义要继承pom信息,它用来定义SpringBoot项目可能用到依赖插件声明以及一些资源文件声明...依赖以及spring-boot-maven-plugin插件一样,pom.xml源码如下: <?...文件还有自己pom,作用类似,不再详解,感兴趣可以自己去翻阅源码。...那么这样看来我们自己SpringBoot项目中pom.xml文件就剩下显眼两个依赖以及一个插件了(没有指定版本号原因前面已经解释了),那我们接下来就来聊一聊这些非常重要spring-boot-starter

94520

DL4J实战之一:准备

关于DL4J DL4J是Deeplearning4j简称,是基于Java虚拟机深度学习框架,是用javascala开发,已开源,官网:https://deeplearning4j.org/ 关于...作为《DL4J实战》系列开篇,本文为后面的文章和实战做好准备工作,包含以下内容: 确定环境版本信息 创建名为dl4j-tutorialsmaven工程作为工程,后面整个系列代码都是dl4j-tutorial...工程 创建名为commons工程,这里面是一些常用工具代码,例如下载数据集、绘图等 源码下载 本篇实战中完整源码可在GitHub下载到,地址链接信息如下表所示(https://github.com...实战》系列源码公用工程 《DL4J实战》系列源码都放置在同一个工程下,除了管理代码方便,还可以将各个子工程依赖库版本统一管理,接下来创建这个工程; 新建名为dl4j-tutorialsmaven...1.4.0 2.4.3

30820

Maven - 统一构建规范:Maven 插件管理最佳实践

以下是一些常用 Maven 插件Maven-clean-plugin:用于清除项目目录中垃圾文件临时文件。 Maven-compile-plugin:用于编译项目源代码,生成目标代码。...这些插件可以一起使用,以构建具有各种功能依赖项应用程序。 假设我们要创建一个名为my-project JAR 文件,其中包含项目中源代码、依赖项一些资源文件。...---- 看个 nacos类似的配置 这段代码是在pom.xml中标签内添加了一个maven-jar-plugin插件配置。...https://maven.apache.org/plugins/maven-shade-plugin/ Shade 插件功能更为强大,其提供了两个功能: 第一个即与 assembly 类似可实现依赖打包编译...Shade 插件 - 标签 下面介绍一下 Shade 插件中各标签使用。 artifactSet 通过 includes 标签可以指定需要一同打包编译第三方依赖。

1.2K30

关于Maven使用,这些你都了解了么?

基于项目对象模型(POM概念,Maven可以通过一小段描述信息来管理项目的构建,报告和文档。 Maven核心是一个插件执行框架, 所有工作都是通过插件完成。.../apache/maven-deploy-plugin/ ) 除了这些默认流程插件,我们针对Maven工作机制也制作了自己插件,如 授权系统抽取api.json文件插件,如通过erm对象描述文件生成...Maven坐标也就是这三个元素 modules 节点,聚合子模块, 在多模块项目中使用,用来定义子模块,一般多模块项目中,模块packaging都定义为pom ...plugin这个节点主要用来定义构建插件,包括自定义已经发布到中央仓库。...依赖JAR版本使用属性控制 建议依赖别的jar时,不要写死jar版本,通过properties节点定义属性来控制,那么当你pom被别人依赖时,上层pom可以通过定义属性值覆盖pom中属性来控制依赖版本

26060

Java EE7Maven工程入门(1)

所以请记住,拥有并配置pom文件是一件非常好事情。在它里面,你会定义你所有依赖jar包版本,配置maven插件,所有的pom文件都会继承pom配置。...这里用来定义在应用模块中可能会用到依赖各自版本。在这一部分中,我们实际关注是版本号,包含还是排除依赖是取决于pom(也就是说它们是不会被自动添加到pom)。它们作用范围也是一样。...在这个部分定义所有maven插件版本通用配置。这些插件在我们应用配置打包过程中会被引用或者是使用到。下面的例子中,我定义了一个最基本编译器插件。当然,我们还需要更多插件。 ?...但是,一步一步定义了一个干净并且具体pom文件,他将是我们在下篇文章中要做剩余工作基础。 学习重点 标准maven工程布局pom文件。...dependencyManagementpluginManagement重要性。 资源 Maven3 Java EE 7指南 Maven工程结构 pom 什么是依赖管理 什么是插件管理

60110

Maven 极简教程「附」常用 Maven 命令

(Super)POM (Super)POMMaven 默认 POM。所有的 POM 都继承自一个 POM(无论是否显式定义了这个 POM)。 POM 包含了一些可以被继承默认设置。...Maven首先在构建当前项目的地方寻找项 目的pom,其次在文件系统这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找项目的pom。...--该元素指定更新发生频率。Maven会比较本地POM远程POM时间戳。...-- 用于定位排序构件仓库布局类型-可以是default(默认)或者legacy(遗留)。...Maven 2为其仓库提供了一个默认布局;然 而,Maven 1.x有一种不同布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。

1.7K30

Mavenpom文件那些事

maven生命周期是不做任何实际工作,实际任务都由插件完成。 maven具有三个独立生命周期:clean、defeat、site 1、clean生命周期:清理项目,包含三个phase。.../pom.xml//相对路径 pompackaging则不一定要是pom,但一定有parent标签 子类groupIdversion...也可以继承与pom文件 标签 作用:当子类不需要pom某些依赖时,就可以使用。...中已经配置过了 若想获取pom中所有的dependencyManagement中构件配置,则在pom中如下配置 <...插件管理 pom插件不想在子类中默认使用 跟依赖管理一样,被包裹插件配置不会被子pom主动获取,只有当pom中声明了该插件groupIdartifactId后,才会被继承 一个pom文件既可以是聚合也可以是

1.4K10

Maven - 打包之争:Jar vs. Shade vs. Assembly

Shade 打包方式: 描述: Maven Shade插件允许创建一个可执行JAR文件,其中包含所有依赖。 优点: 生成一个独立可执行JAR,无需用户手动添加依赖。...Jar 打包方式_maven-jar-plugin Overview 使用maven-jar-plugin插件, 默认打包方式,用来打普通project JAR包 ....Shade 打包方式_maven-shade-plugin Overview 插件:使用maven-shade-plugin插件 maven-shade-plugin提供了两大基本功能: 将依赖jar...”“org.codehaus.plexus.util.xml.pull”不会被重命名到目的包中; 修改包后缀名 默认会生成一个Jar包一个以 “-shaded”为结尾uber-jar包,可以通过配置来指定...日常使用比较多maven-assembly-plugin插件 例如:大数据项目中往往有很多shell脚本、SQL脚本、.properties及.xml配置项等,采用assembly插件可以让输出结构清晰而标准化

67810
领券