You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将自定义文件类型添加至quarkusDev监听列表以实现热重载

解决Quarkus开发模式下自定义文本文件的热重载问题

1. 标记自定义目录为Gradle源输入

在build.gradle中,将你的自定义模板目录注册为Gradle的源集合,让Gradle能追踪这些文件的变化:

sourceSets {
    main {
        resources {
            srcDirs += 'src/main/my-templates' // 替换为你的自定义目录路径
            include '**/*.txt' // 匹配你的文本文件后缀
        }
    }
}

同时给代码生成任务明确输入输出依赖,确保文件变更时触发重新生成:

task generateJavaFromTemplates(type: JavaExec) {
    // 配置你的代码生成器,比如主类、运行参数
    classpath = sourceSets.main.runtimeClasspath
    mainClass = 'com.example.TemplateCodeGenerator'
    
    // 声明输入:自定义目录下的所有文本文件
    inputs.dir sourceSets.main.resources.srcDirs.find { it.path.contains('my-templates') }
    // 声明输出:生成的Java代码存放目录
    outputs.dir 'build/generated-sources/my-codegen'
}

// 让编译任务依赖代码生成任务,保证编译前先生成代码
compileJava.dependsOn generateJavaFromTemplates
// 将生成目录加入Java源目录,让Gradle编译时能识别生成的代码
sourceSets.main.java.srcDirs += 'build/generated-sources/my-codegen'

2. 让Quarkus Dev模式监测自定义目录

Quarkus开发模式默认只监测标准源目录,需要手动把自定义目录加入监测列表,在build.gradle中配置:

quarkusDev {
    // 添加自定义目录到热重载监测列表
    watch.add 'src/main/my-templates'
}

3. 验证热重载效果

启动Quarkus开发模式:

./gradlew quarkusDev

修改自定义目录下的任意文本文件,Quarkus会检测到变化,触发Gradle重新执行代码生成任务,编译新生成的Java代码后自动热重载应用。

注意事项

  • 务必确保代码生成任务的inputs和outputs配置准确,Gradle的增量构建才能生效,避免无意义的重复生成。
  • 如果使用第三方代码生成插件,要确认插件已正确声明输入输出依赖,否则可能无法触发增量构建。

内容的提问来源于stack exchange,提问作者Kostas Pagratis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:24:51