【问题标题】:How do you deploy a non-web Java app through CloudBees Jenkins "Deploy Now" feature?如何通过 CloudBees Jenkins“立即部署”功能部署非 Web Java 应用程序?
【发布时间】:2012-11-16 21:36:04
【问题描述】:

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

【问题讨论】:

    标签: cloudbees


    【解决方案1】:

    虽然当前的 CloudBees 部署程序 Jenkins 插件似乎不支持这一点,但实际上它支持。以下是经过反复试验后对我有用的步骤:

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

    【讨论】:

      【解决方案2】:

      一旦您正确设置并最初使用 bees sdk 进行部署,它应该像战争通常那样从 Jenkins 上的部署器插件部署。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-02
        相关资源
        最近更新 更多