- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Cloudbees 为 Spring Boot 应用程序设置 CI。设置 Jenkins Maven 作业没问题。代码是从 github 存储库中提取的,Jenkins 成功构建并部署了应用程序。
但我正在学习 Gradle。当我创建 Gradle Jenkins 作业时,它成功构建了项目,但看起来 Jenkins CloudBees Deployer 插件找不到 war 文件。
我将作业创建为“构建一个自由风格的软件项目”,并使用 Gradle Wrapper 调用 gradle 脚本。该项目构建良好,我也希望 Jenkins 部署它,但未显示“部署”按钮。
在 Jenkins 作业的 RUN@Cloud 设置中,显示错误消息“没有存档的工件”(见图)。
如果我查看工作区,我可以在/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
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/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!