如何通过Gradle将MaterialFX依赖中的字体文件夹复制到项目资源目录
Gradle Kotlin脚本自动复制MaterialFX字体到资源目录
直接在你的build.gradle.kts里添加以下配置,就能自动把MaterialFX依赖包里的fonts文件夹复制到项目的src/main/resources目录下,不用手动复制:
// 注册自定义任务,负责提取并复制MaterialFX的字体文件 tasks.register<Copy>("copyMaterialFXFonts") { // 从运行时依赖中筛选MaterialFX的JAR包,解析为文件树 from(configurations.runtimeClasspath.get().filter { it.name.contains("materialfx") }.map { zipTree(it) }) { // 只包含fonts文件夹下的所有内容 include("fonts/**") } // 指定复制目标目录为项目的资源目录 into("src/main/resources") } // 让资源处理任务依赖自定义任务,确保编译前完成字体复制 tasks.processResources.configure { dependsOn("copyMaterialFXFonts") }
配置说明
configurations.runtimeClasspath.get():获取项目的运行时依赖集合,从中筛选出MaterialFX的JAR文件zipTree(it):把JAR包转换成Gradle可处理的文件树,这样就能读取包内的fonts文件夹include("fonts/**"):只复制JAR包里fonts文件夹下的所有文件和子目录,避免复制无关内容- 绑定
processResources依赖:Gradle在处理项目资源(比如打包资源文件)之前,会先执行字体复制任务,保证资源目录里的字体文件在编译和打包时都能正常被访问
手动触发验证
如果想立刻测试效果,直接在终端执行:
# macOS/Linux ./gradlew copyMaterialFXFonts # Windows gradlew.bat copyMaterialFXFonts
执行完后检查src/main/resources目录,就能看到自动复制过来的fonts文件夹了。
内容的提问来源于stack exchange,提问作者citizen_code
相关产品推荐
相关产品推荐

