Idea运行Spring Boot Gradle项目时有关Filter参数无法生效问题

       Spring Boot使用Gradle进行项目管理时,也会使用Filter来进行打包时参数替换,特别是对于resources文件夹下的内容。如下所示,为resources下的数据初始化data.sql:

INSERT INTO demo_system_info(version_code,version_id,update_time,description) VALUES('{{version}}','{{versionId}}',CURRENT_TIMESTAMP,'{{desc}}') ON DUPLICATE KEY UPDATE description=VALUES(description);

其对应gradle filter相关设置如下:

processResources {
    filter(ReplaceTokens, tokens: [dbName   : project.ext.db.name,
                                   dbPwd    : project.ext.db.password,
                                   version  : project.ext.version.code,
                                   versionId: project.ext.version.id,
                                   desc     : project.ext.version.desc],
            beginToken: '{{', endToken: '}}')
}

       打包时,“{{}}”之间的内容会被相应的替换,但是直接使用idea运行Spring Boot时,却无法生效替换,个人猜想是因为运行编译时使用了idea自身编译方式而导致,经过一番查询之后,将idea项目编译替换为Gradle方式即可,具体设置如下:

    "Build and run using"默认方式为Intellij IDEA,将其设置为Gradle即可解决。

发布了42 篇原创文章 · 获赞 9 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/jjxojm/article/details/104254839