我们团队的大部分成员都是 java 开发人员,因此整个构建/部署/依赖管理系统都建立在 maven 之上。我们使用 CI,因此每个构建过程都运行单元测试(前端使用 karma 和 phantomJS,后端使用 jasmine-node)。为此,我设法配置了一个 karma maven 插件。
这并不能解决在构建时从 package.json 下载 node.js 依赖项的问题。 我需要在现有环境中部署我的 node.js/express 应用程序,所以完美的场景是:
- 从 repo 中提取(使用 maven 构建自动完成)
npm install
(即——从 Node 包注册处下载依赖)- 运行测试
我试图为 maven 找到一个 nodejs 包,但老实说 - 作为一个 node.js 开发人员,我在选择合适的工具时并没有信心,因为我无法区分一个坏的一个不错的maven插件。
也许使用 shell 插件并从终端调用 npm install
是更好的选择?
你有什么意见?
最佳答案
你有两个选择:
https://github.com/eirslett/frontend-maven-plugin让 maven 从你的 package.json 下载你的 npm 模块,让它自动安装 node 和 npm
https://github.com/mulesoft/npm-maven-plugin让 maven 下载您在 pom.xml 中指定的 npm 包(链接截至 2020 年 4 月已失效,似乎已停用)
作为一个 hacky 解决方案,尽管您仍然可以使用 maven-antrun-plugin 之类的东西来实际使用 maven 执行 npm。
所有方法都有其优点和缺点,但 frontend-maven-plugin 似乎是最常用的方法 - 但它假设您的 ci 服务器可以从互联网上下载任意包,而“hacky”解决方案也应该有效,当您的 ci 服务器根本没有连接到互联网时(除了代理中央 maven 存储库)
关于java - 如何使用 maven 部署 node.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17103748/