2

我所试图做的事:运行无服务器架构的CLI命令,如“部署”,从Maven的

  1. 构建(AWS lambda函数)的Java Maven的模块,与mvn命令和目标,像往常一样。

  2. 根据给定的自定义目标,Maven将调用Serverless CLI命令来部署基于Java的Lambda函数,使用模块根目录下的serverless.yml文件。

  3. Maven的与端继续至结束试验,使用由无服务器CLI命令调用(deploy)返回的URL。或者通过将消息发送到队列,如果这是触发该功能的事件。

因此,我一直在为无服务器框架CLI寻找一个Maven插件,但是我找不到任何人。我真的希望Maven在实现某些目标时执行无服务器CLI。

这就是我想我的选择可能是,现在:

  • 写Maven插件喽。
  • 使用shell脚本,我认为这是丑陋的,但多数民众赞成主观的。
  • 获取Maven插件我已经错过了的尖端。
  • 另一种华而不实的方式来完成我想要的,我是不知道的。

我很欣赏所有的想法,但我真的很关注在Maven生命周期内解决这个问题。

回答

0

另一种华而不实的方式来完成我想要的,我是不知道的

我想办法的实现这一点的脚本添加到您的构建服务器的一个步骤。 Maven的主要功能是作为构建管理器,与上面概述的部署用例略有不同。

+0

我都同意不同意和,Maven的甚至有推文物到中央存储库中的部署阶段。但是,是的,我们不使用,我们用詹金斯管道照顾,与Maven的部署执行。 但是,编写小型AWS Lambda函数,开发人员可以使用自己的标签从笔记本电脑部署它们(用于测试),因此可通过“http://developername.company.com/service/user/23”访问它们“,在说”mvn test serverless:deploy -Dackack = developername“之后。我希望这在maven阶段发生。 – Wrench

+0

为了充分披露,我找到了这个页面,因为我一直在寻找这个确切的东西。但是,您对“我已经错过的Maven插件的提示”的评论我认为可能是解决此问题的更正确方法。您可以扩展Maven生命周期以在组装jar之后运行其他测试,但这会打破Maven生命周期。我认为你会希望将大部分测试放在单元测试层中,然后信任无服务器部署。 – Lee

+0

是的。但是,工件是在验证阶段之前构建的,所以在这个阶段中,我希望使用maven,可选地使用无服务器将内容推到最终2端测试。当设计Maven生命周期时,对无服务器体系结构的了解甚少,您可以通过自动化完全结束双端测试,但我们不能让它阻止我们。 所以,现在看起来我们不得不1。编写我们自己的插件,2.沟渠maven或3.手动执行,这意味着开发者,可能通过编写shell scrtips。 1和2是可以的,但很麻烦。 3不是一个选项。 – Wrench