繁体   English   中英

您将在Java中使用什么部署脚本?

[英]What would you use for deployment scripts in Java?

我正在研究一个使用Maven构建其工件的Java Web项目。 在Maven构建结束时,我们需要将一些jar和war文件部署到我们的开发/测试环境中。

现在我们正在使用一个非常庞大的Ant脚本来执行多个任务(在Windows / Linux机器上)

  • 启动/停止服务
  • 复制/删除文件
  • 构建一些东西,然后执行它
  • 等等

Ant可以很好地完成工作 - 但是脚本很快变得非常大,而且说实话,它对于手头的任务感觉不够。

还有其他选择吗? 我听说过,但我不确定这是正确的方法。

谢谢你的帮助!

编辑:经过更多的研究,我发现了Gradle - 它似乎是重用ant任务和允许真正的脚本运行的非常好的组合。 值得一读。

是的,看看maven的Cargo插件:

 * Deploying to a running container * Generating a container configuration deployment structure * Merging WAR files * Starting and stopping a container 

Hudson - 一个持续集成引擎 - 也可用于实现这些任务。

一般来说部署并不容易(通常非常具体),而Cargo maven插件可能有助于远程部署war / ear(如果实现了app服务器的远程部署),我认为它不会覆盖你的所有需要。 实际上,由于问题含糊不清,很难非常精确,所以我只想给出一些指示。 看看像这样的解决方案:

如果这是一项大任务,你总是可以用Java或Jython编写ant任务并从ant调用它们。

这似乎也是2017年的一个悬而未决的问题。 搜索“java deploy script”首先指向这个问题,也指向Ant和其他一些不相关的文章。

我在撰写本文时正在研究的项目有6-7个JAR文件,我们放在tomcat的lib /文件夹中,还有20-30个小的WAR文件放在webapps /中。 我们有一个部署脚本,可以从Bamboo服务器下载并扩展包含所有内容的存档,但在开发期间不可用。 手动部署所有这些都是一场噩梦。

所以我创建了自己的Python脚本,最初会将几个JAR和WARS部署到tomcat实例。

现在它是一个跨平台的部署工具(在Windows和Mac上测试),语言和服务器无关,可通过JSON文件进行配置。 它可以:

  • 复制和删除库和应用程序

  • 运行本地和远程(通过SSH)命令

  • 暂停

由于您可以在远程服务器上运行命令,因此可以通过Shell命令执行很多操作(我们使用它们来启动/停止tomcat,等待它启动/停止,删除日志等)。

部署脚本位于GitHub上

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM