maven打包实现依赖分包治理

 配置如下:

<build>
        <plugins>
            <!--打包自己的项目为jar并放入lib目录,不包含依赖。-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.2</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <!--MANIFEST.MF 中 Class-Path 加入前缀-->
                            <classpathPrefix>./lib/</classpathPrefix>
                            <!--jar包不包含唯一版本标识-->
                            <useUniqueVersions>false</useUniqueVersions>
                            <mainClass>com.zkbl.AuthApplication</mainClass>
                        </manifest>
                        <manifestEntries>
                            <!--<Class-Path>./config/</Class-Path>-->
                            <Class-Path>./</Class-Path>
                        </manifestEntries>
                    </archive>
                    <outputDirectory>${project.parent.build.directory}</outputDirectory>
                </configuration>
            </plugin>

            <!--拷贝依赖 copy-dependencies-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>
                                ${project.parent.build.directory}/lib/
                            </outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <finalName>${project.artifactId}</finalName>
    </build>

第一个插件是maven-jar-plugin,用于创建JAR文件。具体解释如下:

  • <groupId><artifactId>指定了插件的名称和组织/项目名称,这里是org.apache.maven.plugins和maven-jar-plugin。
  • <version>指定了插件的版本号,这里是3.2.2。
  • <configuration>标签用于配置插件的参数。
  • <archive>标签用于配置JAR文件的归档信息。
  • <manifest>标签用于配置JAR文件的清单信息。
    • <addClasspath>true</addClasspath>表示将当前模块的依赖添加到MANIFEST.MF文件中的Class-Path属性中。
    • <classpathPrefix>./lib/</classpathPrefix>表示在MANIFEST.MF文件中的Class-Path属性前添加一个前缀"./lib/"。
    • <useUniqueVersions>false</useUniqueVersions>表示在生成JAR文件时不使用唯一版本标识符。
    • <mainClass>com.zkbl.ContractApplication</mainClass>表示指定JAR文件的主类为com.zkbl.ContractApplication。
  • <manifestEntries>标签用于配置清单文件的其他条目。
    • <Class-Path>./</Class-Path>表示在清单文件中的Class-Path属性中添加一个条目"./",表示将所有依赖都包含在JAR文件中。
  • <outputDirectory>${basedir}/target</outputDirectory>表示将生成的JAR文件输出到${basedir}/target目录下。

第二个插件是maven-dependency-plugin,用于拷贝依赖到指定目录。具体解释如下:

  • <groupId><artifactId>指定了插件的名称和组织/项目名称,这里是org.apache.maven.plugins和maven-dependency-plugin。
  • <executions>标签用于配置插件的执行方式。
    • <execution>标签用于定义具体的执行目标。
      • <id>copy-dependencies</id>表示执行目标的名称为copy-dependencies。
      • <phase>package</phase>表示在打包阶段执行该目标。
      • <goals>标签用于指定执行目标需要完成的任务。
        • <goal>copy-dependencies</goal>表示执行拷贝依赖的任务。
      • <configuration>标签用于配置拷贝依赖的具体参数。
        • <outputDirectory></outputDirectory>表示将拷贝的依赖文件输出到/target/lib/目录下。

成果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

94920

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值