找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

227

积分

0

好友

27

主题
发表于 前天 21:36 | 查看: 7| 回复: 0

在使用Spring Boot Maven插件打包项目时,有时需要将非标准路径下的资源或类文件包含到最终的JAR包中。本文将介绍几种常见的配置方法,帮助您灵活管理构建内容。

添加类文件到JAR包

如果您希望将target/test-classes目录下的类文件添加到JAR中,可以在pom.xml<build>部分配置<resources>。以下是完整的配置示例:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.0.0.RELEASE</version>
            <configuration>
                <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
                <mainClass>com.test.TestApplication</mainClass>
                <layout>ZIP</layout>
                <!-- <classesDirectory>target/test-classes</classesDirectory> -->
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <filtering>false</filtering>
            <directory>target/test-classes</directory>
            <includes>
                <include>**/*.class</include>
            </includes>
        </resource>
    </resources>
</build>

通过上述配置,target/test-classes下的所有.class文件将被打包到JAR中。需要注意的是,<configuration>中的<classesDirectory>标签在文档中虽提及可用于添加资源,但实际测试中可能不生效,建议优先使用<resources>配置。

字母G标志,代表开源社区

图1:开源社区标志,象征协作与共享。

添加外部JAR文件

若需将项目lib/目录下的JAR文件复制到Spring Boot JAR包的BOOT-INF/lib/中,可配置如下:

<resources>
    <resource>
        <directory>lib</directory>
        <targetPath>BOOT-INF/lib/</targetPath>
        <includes>
            <include>*.jar</include>
        </includes>
    </resource>
</resources>

此方法适用于引入本地依赖库,确保运行时类路径正确。结合Spring Boot的自动配置,能简化项目依赖管理。

排除特定依赖

在某些场景下,您可能希望从JAR包中排除某些依赖。例如,排除spring-tx模块,配置如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.0.0.RELEASE</version>
            <configuration>
                <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
                <mainClass>com.test.TestApplication</mainClass>
                <excludes>
                    <exclude>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-tx</artifactId>
                    </exclude>
                </excludes>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

这样可以在打包时过滤不需要的库,减小JAR体积。掌握Maven插件配置是Java开发中的基础技能,有助于优化构建流程。

像素化T形图案,代表技术元素

图2:抽象技术图标,常用于表示工具或模块。

参考文档




上一篇:微信小程序Toast真机不显示?排查与解决方案
下一篇:军工软件质量控制与项目管理:从GJB标准到工具落地实践
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 19:22 , Processed in 0.237997 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表