【发布时间】:2017-07-24 10:54:40
【问题描述】:
如何创建一个带有 Spring 后端和 Angular2 前端的 Maven 多模块项目?分别使用 spring initializr (https://start.spring.io) 和 angular cli 似乎很简单,但是我如何将其组织为具有链接但单独的 pom 文件的多模块 Maven 项目?我应该使用什么值以及按什么顺序创建和初始化它们?如果 Intellij IDEA 让事情变得更容易,我可以使用它,但我也可以使用 CMD(我在 Windows 上)。
我在这方面找到的唯一教程在这里:https://blog.jdriven.com/2016/12/angular2-spring-boot-getting-started/ 但是这家伙使用了一些我不想要的自写的“frontend-maven-plugin”。有人可以解释一下这些步骤或将我链接到不使用第三方资源但只清理 Spring 和 Angular2 的教程吗?
编辑:当我发布这个问题时,WebDevelopment 对我来说大部分是新的。下面的解决方案在一开始是可行的,但为了更好的可扩展性,我们决定稍后制作单独的项目:一个包含多个 Angular 应用程序和许多 FE-lib 的 FE 项目(请查看NRWL's NX)。每个 BE-Microservice 一个项目,每个项目都可以在 CI-Pipelines 中单独部署。 Google 自己对所有 FE 和 BE 采用一个项目的方法,但它们确实有特殊要求(所有库必须在最新版本中相互协作)并且他们使用 ABC 堆栈(Angular + Bazel + Closure)堆栈,尚未完全向公众开放,但值得关注:https://github.com/angular/angular/issues/19058
【问题讨论】:
-
为什么不想使用frontend-maven-plugin?它使事情变得简单、独立并且很好地集成到 Maven 中。将 Angular cli 构建集成到 maven 构建中是完美的。
-
我创建了空项目并添加了 2 个模块 - spring initializr 和 angular cli。然后我创建了自己的脚本来构建所有内容并将角度应用程序复制到资源/静态/目录中。我想有更好的解决方案,但它对我有用
-
@JBNizet 因为虽然建立一个爱好项目很酷,但我不想稍后在公司项目中使用“一些随机”的代码(即使它是在 apache 许可下)。此外,我不明白该插件到底是做什么的 - 乍一看,我只看到了 FileDownloader 等模块 - 虽然它在未来可能有用,但我更愿意保持它的简约并稍后自己添加所需的模块。
-
然后自己写一个插件做你想做的事。但请注意,Maven、NodeJS、Java、Spring、Angular、TypeScript 都是随机的开源代码。我不会回答这个插件的作用。 README 中有解释:github.com/eirslett/frontend-maven-plugin
-
@Phil Spring 不关心您在前端使用什么,也不提供构建 Angular 应用程序的工具。这最好由 angular-cli、webpack 等来完成。所以你只需要一些东西来将 angular-cli 构建集成到 maven 构建中。这就是这个插件的重点。
标签: spring maven angular spring-boot angular-cli