如何通过CloudBees Jenkins“立即部署”功能部署非Web Java应用程序?

时间:2012-11-15 14:59:58

标签: cloudbees

由于CloudBees现在支持Java应用程序的部署,是否可以使用Jenkins“Deploy to CloudBees”中的构建后操作来部署您的应用程序?此外,我想使用Maven assembly plugin's jar-with-dependencies目标,这样我就可以通过Jenkins简单地自动将整个应用程序部署到CloudBees。

2 个答案:

答案 0 :(得分:3)

虽然目前的CloudBees部署者Jenkins插件似乎不支持这一点,但事实上确实如此。以下是经过多次试验和错误后的步骤:

  1. 在pom.xml中包含jar-with-dependencies maven插件。我使用了<goal>single</goal><descriptorRef>jar-with-dependencies</descriptorRef>描述的here。这将在目标文件夹{artifactId}-{version}-jar-with-dependencies.jar
  2. 中添加一个额外的jar文件
  3. 通过CloudBees API部署该jar。本页的最后一行解释了如何做到这一点。指定你的runnable jar,确保runtimeContainer = java,以及要上传的jar文件,它应该部署。即使CloudBees说使用zip文件,jar文件也可以正常工作。
  4. 一旦通过命令行部署了一次,您的应用程序ID就会“记住”这些设置,这样只要您将CloudBees Deploy安装到同一个应用程序,就可以通过Jenkins完成。在Jenkins作业中,将“部署到CloudBees”后构建操作添加到您的配置中。点击“添加Web应用程序”(奇怪,我知道,因为它不是一个网络应用程序!CloudBees说他们会努力改变它......),选择First Match(即使它是Maven项目,使用First Match),输入您在步骤2中部署应用程序的应用程序ID,然后输入jar文件的全名并再次尝试构建。它应该上传您的jar文件并激活CloudBees PaaS中的实例。请注意,这仍然是硬编码jar文件中的版本 - 我正在努力了解如何为jar文件的版本设置变量,以便它对应于Maven构建版本。

答案 1 :(得分:0)

一旦你正确设置并最初使用bees sdk进行部署,它应该只是通过Jenkins上的部署者插件进行部署,这是正常的战争。

设置完成后,用于定义主类在部署之间保持不变的位置。