使用 JeKa 实现 Java DevOps


JeKa 是一个非常精简的工具,允许您从命令行或在 IDE 中执行任意 Java 源代码。虽然乍一看这似乎没什么大不了的,但此功能使您能够:

  • 使用纯Java 代码编写任意脚本,在 IDE 中运行和调试它,并调用任意公共方法,这样您就可以在一个类中托管许多脚本。
  • 从命令行或任何 CI/CD 工具调用此代码,无需编译。JeKa 为您处理编译。
  • 只需在脚本中使用 Java 生态系统中可用的任何库。只需在注解中声明依赖关系,JeKa 就会在幕后解决它们。

如果您曾经使用 Ant、Maven 或 Gradle 等主流构建系统实施过 Java 项目,您可能已经注意到您需要使用额外的语言来描述如何构建您的项目。

虽然这对于基本任务似乎很有吸引力,但对于更复杂的任务来说可能会变得更加棘手。您需要学习特定的XML汤,编写冗长的配置,或编写与复杂工具交织在一起的 Kotlin DSL。 

有了JeKa ,您就可以摆脱神秘的 shell 脚本并实现功能强大且可移植的脚本,而无需额外的知识。

JeKa 的第二阶段是它嵌入的实用程序。在编写脚本时,您可以使用任何库,但 JeKa 还捆绑了一些在实现自动化任务时经常需要的实用程序,例如处理文件集和 zip 文件、Git、同步启动 OS 进程并检索结果、Java 编译/测试、 Maven 依赖项/回购管理、完整的 JVM 项目构建模型和 XML 处理。

这些实用程序可以帮助您实施CI/CD管道,甚至可以构建/测试整个 Java 项目。

最后一个阶段包括一个插件和参数化机制,允许 JeKa 成为构建工具空间中的一等公民。每个插件都提供了方法和配置来以最少的努力或无需输入来集成外部技术。目前,有用于 JVM 项目、Node.js、Spring Boot、SonarQube、JaCoCo、Kotlin、Protocol Buffers 和 Nexus 存储库的插件。

凭借所有这些功能,JeKa 允许您使用一种语言实现整个 Java 项目的自动交付。这种语言可以是 Java,也可以是 Kotlin,因为 JeKa 为两者提供了相同的功能。

此外,还有一个 IntelliJ 插件可以改善 JeKa 的用户体验。

为了更好地理解,请查看这个GitHub 存储库,该存储库演示了许多使用 Jeka 构建的项目。通过这一点,您将深入了解如何利用 Jeka 与流行技术(如 Spring Boot、Kotlin、Node.js、SonarQube 和 JaCoCo)构建项目。