首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins CloudBees Deployer插件找不到gradle cloudbees插件生成的war文件

Jenkins CloudBees Deployer插件找不到gradle cloudbees插件生成的war文件
EN

Stack Overflow用户
提问于 2014-05-07 11:04:40
回答 1查看 639关注 0票数 0

我正在尝试用Cloudbees为Spring应用程序设置CI。设置一份詹金斯·马文的工作没问题。代码从github存储库中提取,Jenkins成功地构建和部署了应用程序。

但我在学格拉德尔。当我创建一个Gradle Jenkins作业时,它成功地构建了这个项目,但是看起来Jenkins CloudBees Deployer插件找不到war文件。

我把这个任务创建为“构建一个自由风格的软件项目”,并使用gradle包装器调用Gradle脚本。该项目构建良好,我希望Jenkins也能部署它,但是deploy按钮没有显示出来。

在Jenkins作业的RUN@Cloud设置中,显示了“没有存档工件”的错误消息(请参阅图像)。

如果我查看工作区,我可以在/build/libs/myApp.war中看到war文件。

我可以使用分级CloudBees插件直接部署应用程序,正如Sean在SpringBoot CloudBees样本中所解释的那样,但我宁愿让Jenkins为我这样做:)。

P.S.使用Ant **/*..war添加post生成操作,在构建后成功地部署应用程序。这对我来说已经够好了。所以问题就在于“一键部署”功能。是虫子吗?

P.S.2像Valentina建议的那样,添加一个post构建操作来归档工件并构建一次应用程序,然后就可以使用“单击部署”按钮了。但是,部署失败时会出现以下错误:

代码语言:javascript
复制
[cloudbees-deployer] Deploying via API server at https://api-eu.cloudbees.com/api
[cloudbees-deployer] 0 MB

[cloudbees-deployer] 1 MB
[cloudbees-deployer] 2 MB

[cloudbees-deployer] 3 MB
[cloudbees-deployer] 4 MB
[cloudbees-deployer] 5 MB
[cloudbees-deployer] 6 MB

[cloudbees-deployer] 7 MB
[cloudbees-deployer] 8 MB
[cloudbees-deployer] 9 MB
[cloudbees-deployer] 10 MB

[cloudbees-deployer] 11 MB
[cloudbees-deployer] 12 MB
[cloudbees-deployer] 13 MB
[cloudbees-deployer] 14 MB
[cloudbees-deployer] 15 MB
[cloudbees-deployer] 16 MB
[cloudbees-deployer] 17 MB

com.cloudbees.plugins.deployer.exceptions.DeployException: Server.InternalError - Deployment type not supported: war
    at com.cloudbees.plugins.deployer.engines.Engine.process(Engine.java:180)
    at com.cloudbees.plugins.deployer.engines.Engine.perform(Engine.java:112)
    at com.cloudbees.plugins.deployer.DeployNowRunAction$Deployer.perform(DeployNowRunAction.java:588)
    at com.cloudbees.plugins.deployer.DeployNowRunAction.run(DeployNowRunAction.java:500)
    at com.cloudbees.plugins.deployer.DeployNowTask$ExecutableImpl.run(DeployNowTask.java:158)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:246)
Caused by: hudson.util.IOException2: Server.InternalError - Deployment type not supported: war
    at com.cloudbees.plugins.deployer.impl.run.RunEngineImpl$DeployFileCallable.invoke(RunEngineImpl.java:363)
    at com.cloudbees.plugins.deployer.impl.run.RunEngineImpl$DeployFileCallable.invoke(RunEngineImpl.java:270)
    at com.cloudbees.plugins.deployer.engines.Engine$FingerprintingWrapper.invoke(Engine.java:252)
    at com.cloudbees.plugins.deployer.engines.Engine.process(Engine.java:174)
    ... 6 more
Caused by: com.cloudbees.api.BeesClientException: Server.InternalError - Deployment type not supported: war
    at com.cloudbees.api.BeesClient.readResponse(BeesClient.java:1794)
    at com.cloudbees.api.BeesClient.applicationDeployArchive(BeesClient.java:732)
    at com.cloudbees.plugins.deployer.impl.run.RunEngineImpl$DeployFileCallable.invoke(RunEngineImpl.java:355)
    ... 9 more
Duration: 8.8 sec
Finished: FAILURE

删除post生成存档操作后,只需使用post生成部署操作即可再次成功部署。

P.S.3问题出在我的build.gradle (我应该把它放在第一位):

代码语言:javascript
复制
cloudBees {
    apiKey = cloudbeesApiKey
    apiSecret = cloudbeesApiSecret
    appId = 'myAppId'
    archiveType = 'jar'
    archiveFile = war.archivePath
    deltaDeploy = true
    parameters = [containerType: "java", 'runtime.class': springBootWarLauncherClassName]
}

archiveType = 'jar'必须是archiveType = 'war',因为我已经评论了cloudbees插件,所以我认为我的build.gradle的一部分不会有任何不同:

代码语言:javascript
复制
apply plugin: 'war'
// apply plugin: 'cloudbees'

war {
    baseName = 'myApp'
    version =  '0.0.1-SNAPSHOT'
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-12 09:20:22

我试过复制你的案子。

首先,必须使用post构建操作配置一个自由的工件,如果您想要启用“立即部署”按钮,就必须对工件进行归档。

在构建作业之前,将项目分叉,并将build.gradle中的包类型更改为"war“。您可以在这里引用我自己的版本https://github.com/valentina1987/springboot-gradle-cloudbees-sample,其中我将build.gradle中的archiveType从"jar“改为"war”。

现在它应该有效了:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23516076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档