我正在尝试用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构建操作来归档工件并构建一次应用程序,然后就可以使用“单击部署”按钮了。但是,部署失败时会出现以下错误:
[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 (我应该把它放在第一位):
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的一部分不会有任何不同:
apply plugin: 'war'
// apply plugin: 'cloudbees'
war {
baseName = 'myApp'
version = '0.0.1-SNAPSHOT'
}发布于 2014-05-12 09:20:22
我试过复制你的案子。
首先,必须使用post构建操作配置一个自由的工件,如果您想要启用“立即部署”按钮,就必须对工件进行归档。
在构建作业之前,将项目分叉,并将build.gradle中的包类型更改为"war“。您可以在这里引用我自己的版本https://github.com/valentina1987/springboot-gradle-cloudbees-sample,其中我将build.gradle中的archiveType从"jar“改为"war”。
现在它应该有效了:)
https://stackoverflow.com/questions/23516076
复制相似问题