java - 将 war 文件从 Jenkins 部署到弹性 beanstalk 时部署失败

标签 java amazon-web-services jenkins deployment

当我尝试使用 AWSEB 部署插件从 Jenkins 将我的 webapp 部署到 AWS elastic beantalk 时出现以下错误。

我在 Root Object 字段集中指定了一个文件路径,所以我在 IncludesExcludes 字段集中没有值。

    AWSEB Deployment Plugin Version 0.3.15
    FATAL: Deployment Failure
    java.io.IOException: Deployment Failure
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.AWSEBDeploymentBuilder.perform(AWSEBDeploymentBuilder.java:188)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
        at hudson.model.Build$BuildExecution.build(Build.java:205)
        at hudson.model.Build$BuildExecution.doRun(Build.java:162)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
        at hudson.model.Run.execute(Run.java:1728)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
        at hudson.model.ResourceController.execute(ResourceController.java:98)
        at hudson.model.Executor.run(Executor.java:404)
    Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Root Object doesn't exist
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at hudson.remoting.LocalChannel$2.get(LocalChannel.java:77)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.DeployerRunner.perform(DeployerRunner.java:66)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.AWSEBDeploymentBuilder.perform(AWSEBDeploymentBuilder.java:184)
        ... 9 more
    Caused by: java.lang.IllegalArgumentException: Root Object doesn't exist
        at org.apache.commons.lang.Validate.isTrue(Validate.java:136)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.cmd.DeployerCommand$ValidateParameters.perform(DeployerCommand.java:124)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.cmd.DeployerChain.perform(DeployerChain.java:54)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.SlaveDeployerCallable.call(SlaveDeployerCallable.java:42)
        at br.com.ingenieux.jenkins.plugins.awsebdeployment.SlaveDeployerCallable.call(SlaveDeployerCallable.java:27)
        at hudson.remoting.LocalChannel$1.call(LocalChannel.java:52)
        at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

关于这个错误有什么想法吗? 根对象不存在

最佳答案

Root obect 字段希望您提供要部署到 beanstalk 的文件或文件夹的路径。

这里重要的是路径应该是相对于你的项目的根目录。

考虑下面的例子:

  • 您的项目位于目录“P”中,在此文件夹中您有 2 个子目录 A 和 B。
  • 假设在您之前的构建步骤中,您已经导航到一个子目录,比如 A
  • 您要部署的文件存在于 A/target/XYZ.war 中
  • 然后,根对象字段的条目将是“A/target/XYZ.war”(不带引号)

注意 - 即使您当前的工作目录是 A ,但 Root 对象路径仍然必须相对于您的工作区(项目的根目录)

关于java - 将 war 文件从 Jenkins 部署到弹性 beanstalk 时部署失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42342519/

相关文章:

Java 字符串用多字符定界符分割

amazon-web-services - Amazon VPC NACL默认规则评估顺序

amazon-web-services - AWS Redis 从外部连接

jenkins - 为 Jenkins 安装和配置 SonarQube Scanner - 需要澄清

jenkins - 如何在 Jenkins 的窗口上使用批处理命令输出设置变量值

java - 如何在 Sonarqube 中导入新的 java 插件规则

java - 如何使用 JFileChooser 在 Ubuntu 中浏览映射驱动器中的文件

java - 对返回语句中未经检查的强制转换发出警告

java - 使用 LinkedList 访问 get 方法

amazon-web-services - 具有认知能力的 Sagemaker 劳动力