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

时间:2010-05-22 12:57:11

标签: java deployment maven-2 ant

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

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

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

Ant做得很好 - 但是脚本很快变得非常大,说实话,它对于手头的任务感觉不够。

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

感谢您的帮助!

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

4 个答案:

答案 0 :(得分:4)

是的,请查看maven的Cargo插件:

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

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

答案 1 :(得分:3)

一般来说部署并不容易(通常非常具体),而Cargo maven plugin可能有助于战争/耳朵的远程部署(如果实施了应用服务器的远程部署),我不认为它将满足您的所有需求。实际上,由于问题含糊不清,很难非常精确,所以我只想给出一些指示。看看像这样的解决方案:

答案 2 :(得分:0)

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

答案 3 :(得分:0)

这在2017年似乎也是一个悬而未决的问题。 正在搜索" java部署脚本"首先指出这个问题,以及Ant和其他一些不相关的文章。

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

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

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

  • 复制和删除库和应用

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

  • 暂停

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

部署脚本位于GitHub