你用过 Maven Shade 插件吗?

文章首发地址
你用过 Maven Shade 插件吗?_第1张图片

Maven Shade插件是Maven构建工具的一个插件,用于构建可执行的、可独立运行的JAR包。它解决了依赖冲突的问题,将项目及其所有依赖(包括传递依赖)合并到一个JAR文件中。
下面是对Maven Shade插件的一些详解:

  1. 配置Maven Shade插件: 在项目的pom.xml文件中添加Maven Shade插件的配置。
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.pluginsgroupId>
      <artifactId>maven-shade-pluginartifactId>
      <version>3.2.4version>
      
    plugin>
  plugins>
build>
  1. 执行Maven Shade插件: 通过在命令行中运行mvn package等构建命令来执行Maven Shade插件,或者在Maven的集成开发环境(IDE)中执行相关命令。

  2. 插件属性配置: 可以配置一些插件属性来满足特定的需求,例如指定输出文件名、指定Main Class、排除或包含特定的类、资源文件等。

<configuration>
  <finalName>my-appfinalName> 
  <transformers>
    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
      <mainClass>com.example.MyAppmainClass> 
    transformer>
  transformers>
  <filters>
    <filter>
      <artifact>com.example:dependencyartifact> 
      <excludes>
        <exclude>com/example/excluded/**exclude> 
      excludes>
    filter>
  filters>
configuration>
  1. 插件目标(Goal): Maven Shade插件提供了多个目标(goal)供选择,常用的目标包括shade:shade和shade:shade-relocation。

    • shade:shade目标将项目及其依赖项合并到一个JAR文件中。
    • shade:shade-relocation目标在合并依赖项时,将那些和项目中已有的包冲突的依赖项进行包重定位,避免冲突。
  2. 生成的JAR文件: Maven Shade插件执行成功后,将生成一个合并后的JAR文件,包含了项目及其所有依赖。这个JAR文件可以作为一个可执行的、可独立运行的应用程序进行分发。

Maven Shade插件在构建可执行的JAR包时非常有用,特别是当项目依赖项较多或存在依赖冲突时。它通过将所有依赖项合并到一个JAR文件中,简化了部署和分发过程,使得应用程序更易于执行和管理。

你可能感兴趣的:(maven,java)