java - 如何使用 maven 部署 node.js 应用程序?

标签 java node.js maven continuous-integration npm

我们团队的大部分成员都是 java 开发人员,因此整个构建/部署/依赖管理系统都建立在 maven 之上。我们使用 CI,因此每个构建过程都运行单元测试(前端使用 karma 和 phantomJS,后端使用 jasmine-node)。为此,我设法配置了一个 karma maven 插件。

这并不能解决在构建时从 package.json 下载 node.js 依赖项的问题。 我需要在现有环境中部署我的 node.js/express 应用程序,所以完美的场景是:

  1. 从 repo 中提取(使用 maven 构建自动完成)
  2. npm install(即——从 Node 包注册处下载依赖)
  3. 运行测试

我试图为 maven 找到一个 nodejs 包,但老实说 - 作为一个 node.js 开发人员,我在选择合适的工具时并没有信心,因为我无法区分一个坏的一个不错的maven插件。

也许使用 shell 插件并从终端调用 npm install 是更好的选择?

你有什么意见?

最佳答案

你有两个选择:

作为一个 hacky 解决方案,尽管您仍然可以使用 maven-antrun-plugin 之类的东西来实际使用 maven 执行 npm。

所有方法都有其优点和缺点,但 frontend-maven-plugin 似乎是最常用的方法 - 但它假设您的 ci 服务器可以从互联网上下载任意包,而“hacky”解决方案也应该有效,当您的 ci 服务器根本没有连接到互联网时(除了代理中央 maven 存储库)

关于java - 如何使用 maven 部署 node.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17103748/

相关文章:

java - 使用 SpringBoot、Spring-MVC 和 Maven 的 WebApp 中不包含 WEB-INF

java - 已经存在具有相同运行时名称的部署

java - 根据 Spring 配置文件注册不同的流

java - 具有外部属性文件的 prunsrv 服务

java - OnRestoreInstanceState 旋转后返回 null

mysql - Sequelize MySQL Migration - 唯一为 false

eclipse - Arquillian/JUnit 测试从控制台运行,但不在 Eclipse 内部

java - 简单的数据线程问题-java

node.js - 当存在index.d.ts时,TypeScript不会导入index.js

javascript - 无法使用 AngularJS 将对象传递到 Web 后端