首页 > 解决方案 > 使用 Jhipster 蓝图覆盖文件模板

问题描述

我想为我的 jhipster 项目中的每个 jpa 实体使用不同的序列。我正在考虑为我的项目制作一个 jhipster 蓝图。

现在,我看到我可以通过更改文件Entity.java.ejs文件模板并从以下位置更改行来做到这一点:

@SequenceGenerator(name = "sequenceGenerator")

@SequenceGenerator(name = "sequenceGenerator", sequenceName = "<%= entityInstance %>_seq")

将我的自定义模板包含在 jhipster 蓝图中的最简单方法是什么?

我可以通过将默认的 yeoman 写作阶段与我的蓝图自定义写作阶段相结合来做到这一点。但我想知道是否有更好/更简单的方法来做到这一点。

谢谢

标签: spring-bootjhipsterblueprint

解决方案


几周前我做了类似的事情。我称之为“合并蓝图”。我想为我的文件添加新内容并覆盖一些基本文件以改变它们的行为(就像你想做的那样)。

你可以在这里查看我的项目: https ://github.com/avdev4j/generator-jhipster-mergeBP

带有角度文件的示例

我声明了两个常量来存储路径:

const ORIGINAL_ANGULAR_TEMPLATE_PATH = '../../../node_modules/generator-jhipster/generators/client/templates/angular';
const CURRENT_ANGULAR_TEMPLATE_PATH = 'angular';

然后我为这两个路径调用“writeFilesToDisk”。实际上,第一个调用必须始终采用 jhipster 基本路径,第二个调用我们的路径(我们的文件不会被覆盖)。

function writeFiles() {
this.writeFilesToDisk(angularFiles, this, false, ORIGINAL_ANGULAR_TEMPLATE_PATH); // always originals first
this.writeFilesToDisk(files, this, false, CURRENT_ANGULAR_TEMPLATE_PATH);

}

顺便说一句,我检查了 kotlin deepu 蓝图(蓝图创建者),他做了一些接近的事情(我认为)https://github.com/jhipster/jhipster-kotlin

我计划在接下来的几天里写一个蓝图。你对这个线程的反馈将非常感激。

对于 sur,我们应该谨慎地覆盖基本文件,因为它会使升级更加复杂。

这是我选择这样做的方式,不知道是否有更简单的方式,但它应该会有所帮助。

我们保持联系 ;)


推荐阅读