【问题标题】:Is there a Java/Maven equivalent of package.jsons "bin"?是否有 Java/Maven 等价于 package.jsons “bin”?
【发布时间】:2019-01-17 09:56:49
【问题描述】:
我在 Java 团队中,其中多个存储库需要访问一组共享的 CI/CD 相关 bash 脚本文件。在 Node 团队中,我会发布一个私有 NPM 包,通过 package.json 的 bin 条目公开这些脚本,然后其他项目可以在执行 npm install 之后使用这些脚本。
我不确定在这个项目中引入 NPM 是否是个好主意,所以我需要帮助来了解在更面向 Java 的环境中最好的方法是什么。
【问题讨论】:
标签:
java
bash
shell
continuous-integration
devops
【解决方案1】:
如果仅 CI/CD 需要脚本,则应在此处对其进行管理,尤其是当您在构建之间共享它们时。您可以通过使用带有 bin 脚本的 JAR 并将其作为构建的一部分解压缩来复制 package.json 所拥有的内容,但这是一个脆弱的解决方案。
现代 CI/CD 解决方案使用 Docker 容器来构建构建环境(例如 CircleCI、CloudBees)。您可以将 bin 脚本添加到用于启动构建环境节点的 Docker 映像中。
如果这不可能,您仍然应该能够定义构建步骤或管道。定义一个安装这些脚本的通用构建步骤。