gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 06:22:01 25 4
gpt4 key购买 nike

我正在尝试使用 Cloudbees 为 Spring Boot 应用程序设置 CI。设置 Jenkins Maven 作业没问题。代码是从 github 存储库中提取的,Jenkins 成功构建并部署了应用程序。

但我正在学习 Gradle。当我创建 Gradle Jenkins 作业时,它成功构建了项目,但看起来 Jenkins CloudBees Deployer 插件找不到 war 文件。

我将作业创建为“构建一个自由风格的软件项目”,并使用 Gradle Wrapper 调用 gradle 脚本。该项目构建良好,我也希望 Jenkins 部署它,但未显示“部署”按钮。

在 Jenkins 作业的 RUN@Cloud 设置中,显示错误消息“没有存档的工件”(见图)。
There are no archived artifacts

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

我可以直接使用 Gradle CloudBees Plugin 部署应用程序,正如 Sean Gilligan 在 SpringBoot CloudBees Sample 中解释的那样,但我宁愿让 Jenkins 为我做这件事:)。

附言添加使用 Ant 匹配 **/*.war 的构建后操作会在构建后成功部署应用程序。这对我来说已经足够了。所以问题仅在于“一键部署”功能。这是一个错误吗?

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

[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

删除构建后存档操作后,再次使用构建后部署操作成功部署。

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'我认为我的 build.gradle 的那部分不会有任何区别,因为我已经评论了 cloudbees 插件行:
apply plugin: 'war'
// apply plugin: 'cloudbees'

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

最佳答案

我试图重现你的情况。

首先,如果您想启用“立即部署”按钮,则必须为自由式作业配置构建后操作以存档工件。

在构建你的工作之前,fork 项目并在 build.gradle 中将包类型更改为“war”。
你可以在这里引用我自己的版本https://github.com/valentina1987/springboot-gradle-cloudbees-sample我已将 build.gradle 中归档的存档类型从“jar”更改为“war”。

现在它应该工作了:)

关于Jenkins CloudBees Deployer 插件找不到gradle cloudbees 插件生成的war 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23516076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com