为啥使用 Yeoman 的生成器而不是 Maven 的原型?

Posted

技术标签:

【中文标题】为啥使用 Yeoman 的生成器而不是 Maven 的原型?【英文标题】:Why use Yeoman's generators instead of Maven's archetypes?为什么使用 Yeoman 的生成器而不是 Maven 的原型? 【发布时间】:2015-09-02 12:36:04 【问题描述】:

我注意到 Yeoman 的生成器更侧重于客户端代码生成,而 Maven 的原型则位于服务器端。但是我仍然不完全理解为什么有必要创建 Yeoman,如果 Maven 能够很好地处理代码生成任务?

我想,可以为 Angular JS 编写一个 Maven 的原型,并使用它来代替 analogous popular Yeoman's generator。但是没有这样的原型,或者至少它不那么受欢迎。

那么,请告诉我为什么?


我这次的猜测结果不是真的。

我认为 Maven 无法在现有项目中生成组件。但是这是错误的。我found 认为可选的<allowPartial>true</allowPartial> 标记使得即使在现有项目上也可以运行archetype:generate。

因此,如果没有您的帮助,我无法快速回答这个问题。

【问题讨论】:

相信自己,你总能回答你的问题。你只需要耐心地完成工作:) 当然,但我的意思是快点:)我认为社区,除​​其他外,服务于这个目的。 没有“必要”之类的东西,由用例决定。两者都可以从模板生成项目,这完全取决于模板。检查blog.akquinet.de/2011/02/11/mavenizing-javascript-projects 我想知道同样的事情,我认为这是因为从事 JavaScript 项目的人不想安装 Java 和 Maven 只是为了生成代码。所以他们决定使用一个生成器,该生成器可以在他们已经安装的工具(例如 node)上运行。 【参考方案1】:

MavenYeoman 都是使用模板的代码生成器。将生成什么代码取决于模板。因此两者都可用于生成客户端和服务器端项目

以下几点可以解释为什么每种工具都在一个领域流行,而在另一个领域则不然:

1。人们正在使用在他们的语言生态系统中流行的工具

一个原因是开发人员主要使用他们正在开发代码的语言生态系统中的工具。Yeoman 是主要用于客户端项目的代码生成器,因为这是大多数时间使用 JavaScript 的地方。 Maven 主要用于服务器端项目,因为这是 Java 大部分时间使用的地方。

2。来自其他环境的工具需要该环境

在纯 JS 项目上运行 Maven 需要安装 Java 才能使用它。另一方面,Yeoman 可以使用 Node.js 运行。 Java 对开发人员来说是不必要的依赖。反之亦然。

【讨论】:

以上是关于为啥使用 Yeoman 的生成器而不是 Maven 的原型?的主要内容,如果未能解决你的问题,请参考以下文章

添加对Yeoman Webapp生成器的支持较少

Yeoman - 无法安装生成器

使用Yeoman搭建React项目

前端工程化系列[06]-Yeoman脚手架核心机制

为啥 fullstack-angular 生成器使用 Lo-Dash 的合并而不是 document.set?

为啥scala maven工件对每个scala版本都有一个工件,而不是每个scala版本都有一个分类器?