ITADN
apache/pekko
apache/pekko · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Apache Pekko

Nightly Builds Nightly Aeron Tests OpenSSF Best Practices

Apache Pekko 是一个用于构建并发、分布式、弹性且具备弹性的应用程序的开源框架。 Pekko 使用 Actor Model 为并发提供更直观的抽象。 利用这些抽象,Pekko 还提供了用于持久化、流、HTTP 等的库。

Pekko is a fork of Akka 2.6.x, prior to the Akka project's adoption of the Business Source License. Pekko now contains some features from Akka 2.7.0 (Apache 2.0 Licensed now)

参考文档

请参阅 https://pekko.apache.org 获取文档,包括 API 文档。所有 Apache Pekko 模块的文档均可在此找到。

从源码构建

CI 构建基于 Linux(Ubuntu),大多数 Pekko 开发者使用 Mac 或 Linux 机器。已有报告指出在 Windows 上构建时会出现问题(#829)。

使用 IntelliJ IDEA

要使用 IntelliJ IDEA,您需要将项目配置为使用 JDK 17。如需可视化指南,请参阅此 Q&A

  • File > Project Structure > Project Settings > Project > 将您的 JDK 设置为 17 版本
  • Settings > ... > Scala Compiler Server > 将您的 JDK 设置为 17 版本
  • Settings > ... > sbt > 将您的 JRE 设置为 17 版本

前提条件

  • 确保已安装 Java 开发工具包 (JDK) 17 或更高版本。
  • 确保已安装 sbt 并使用此 JDK。
  • Graphviz 是 scaladoc 生成构建任务所需的,该任务属于发布流程的一部分。

运行构建

  • 打开命令窗口,并将目录切换到你首选的基础目录

  • 使用 git 克隆 repo 或从 https://pekko.apache.org 下载源码发布版(并根据需要解压或解包)

  • 将目录切换到你安装源码的目录(该目录下应有一个名为 build.sbt 的文件)

  • sbt compile 编译项目默认 Scala 版本(2.13)的主源码

    • sbt +compile 将为所有受支持的 Scala 版本进行编译
  • sbt test 将编译代码并运行单元测试

  • sbt testQuick 类似于 test,但在 shell 模式下重复执行时仅运行失败的测试

  • sbt testQuickUntilPassed 类似于 testQuick,但会循环执行直到测试通过。

  • sbt package 将构建 jar 包

    • jar 包将构建到各个模块的 target 目录中
    • 对于 'actor' 模块,jar 包将构建到 actor/target/scala-2.13/
  • sbt publishLocal 将 jar 包推送到你的本地 Apache Ivy 仓库

  • sbt publishM2 将 jar 包推送到你的本地 Apache Maven 仓库

  • sbt docs/paradox 将构建文档(描述模块功能的文档)

    • sbt docs/paradoxBrowse 执行相同操作,但完成后会在你的浏览器中打开文档
    • index.html 文件将出现在 target/paradox/site/main/
  • sbt unidoc 将为所有模块构建 Javadocs 并将其加载到一个位置(可能需要 Graphviz,参见上文的前置条件)

    • index.html 文件将出现在 target/scala-2.13/unidoc/
  • sbt sourceDistGenerate 将生成源码发布版到 target/dist/

  • 文件名和文档中出现的版本号默认是派生的。派生的版本号包含最新的 git 提交 ID 或日期/时间(如果该目录未受 git 控制)。

    • 在运行 sbt 命令时,您可以显式设置版本号
      • 例如 sbt "set ThisBuild / version := \"1.0.0\"; sourceDistGenerate"
    • 或者,您可以在包含 build.sbt 的同一目录中添加一个名为 version.sbt 的文件,其中包含类似以下内容
      • ThisBuild / version := "1.0.0"

社区

与 Pekko 社区互动有几种方式:

贡献

非常欢迎贡献。如果你有关于如何改进 Pekko 的想法,请随时创建 issue 或提交 pull request。

请参阅 CONTRIBUTING.md 了解开发工作流程以及如何创建你的 pull request 的详细信息。

行为准则

Apache Pekko 遵循 Apache code of conduct。参与本项目即表示你同意遵守其条款。

许可证

Apache Pekko 基于 Apache License, version 2.0 提供。请参阅 LICENSE 文件了解详细信息。