开发者社区 > 云效DevOps > 正文

云效中java构建这个流程我里面会上次构建后的产物到packages 格式就是app-$?

问题1:云效中java构建这个流程我里面会上次构建后的产物到packages 格式就是app-${CI_COMMIT_ID} 我流水线在进入java构建这一步可以定义个if分支判断逻辑吗 如果packages上面存在这个产物就跳过本次java构建的任务? 问题2:我这块逻辑放在前置的任务里面执行命令 写我自己的判断逻辑 可以通过返回结果执行动作是否跳过后面这个java构建任务吗image.png 您的意思是我不用flow内置的java构建任务 这个构建逻辑全部用build.sh自己写是吧

展开
收起
真的很搞笑 2023-07-06 12:03:04 61 0
2 条回答
写回答
取消 提交回答
  • 问题1:在云效中,您可以通过添加一个if分支来判断packages上是否存在上次构建的产物,并决定是否跳过本次java构建任务。具体步骤如下:

    1. 在流水线中找到进入java构建这一步的任务。

    2. 打开该任务的设置页面,在命令或脚本编辑框中添加适当的条件判断语句。

    3. 使用合适的命令或脚本语言(例如Shell、Python等)编写判断逻辑。您可以使用文件操作命令(如ls、find等)检查packages目录中是否存在上次构建的产物。

    4. 如果存在上次构建的产物,则添加相应的逻辑,例如直接跳过本次java构建任务,输出提示信息等。

    请注意,具体的条件判断语句和操作方式可能会根据您的项目结构和要求而有所差异。确保适当地处理错误和边界情况,以及记录相关日志信息。

    问题2:在前置任务中执行命令并返回结果,用于判断是否跳过后续的java构建任务是可行的。您可以在前置任务中添加适当的命令或脚本,执行自定义的判断逻辑,并根据判断结果设置一个环境变量或标志位。

    然后,在java构建任务中使用if分支,根据环境变量或标志位的值来决定是否跳过java构建任务。具体的操作步骤类似于问题1中的解释。

    确保在前置任务执行完毕后,设置好环境变量或标志位的值,并正确传递给java构建任务。

    2023-07-31 09:34:39
    赞同 展开评论 打赏
  • 回答1:建议您把if脚本放到一个 比如 build.sh里面 然后直接执行脚本 回答2:不是的 是直接在java构建里运行脚本,脚本里 如果制品存在就exit 0 或者yaml化创建流水线是直接支持任务跳过的:https://help.aliyun.com/document_detail/612044.html?spm=a2c4g.612035.0.0.133e48031m6yVx,此回答整理自钉群“云效交付域答疑群”

    2023-07-06 12:31:32
    赞同 展开评论 打赏

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载