amper

JAVA源码 2025-08-20

amper

amper是Kotlin和Java语言的实验构建工具。它的目标是提供出色而流畅的用户体验和IDE支持。我们认为这可以通过:

  • 提供开发人员和IDE友好的声明性配置DSL-不仅简化了初始设置,还可以提高可维护性,并让IDES可靠地可靠地进行自动配置;
  • 捆绑一组策划的兼容工具链和扩展名 - 以支持大多数方案,而无需找到兼容的插件;
  • 仔细选择可扩展的点 - 以保持配置的整体心理模型和UX一致,并避免出乎意料的第三方代码执行。

从本质上讲,我们旨在与喷气式杂志类似的经过深思熟虑和经过良好测试的体验。

我们仍处于实验阶段。我们目前正在研究各个方面,包括用于建造,包装,出版等项目的配置。但是,在当前阶段,重点主要是配置建筑项目。虽然当前的用例是Kotlin和Kotlin Multiplatform,但amper还支持Java和Swift(作为多平台的要求)。但是,将来对其他语言和技术堆栈的配置方法都可以使用。

支持的功能:

  • 创建和运行JVM,Android,iOS,Linux和MacOS应用程序。
  • 创建Kotlin多平台库。
  • 运行测试。
  • 混合Kotlin,Java和Swift代码。
  • Intellij Idea和Fleet中模块文件的代码帮助。
  • 多模块项目。
  • 使用Compose Multiplatform。
  • 使用撰写乘法资源。
  • 与Gradle版本目录集成。

未来的指示:

  • 支持更多的Kotlin和Kotlin乘法场景和配置。
  • 更多产品类型和平台,例如WatchOS,Windows等。
  • 平台特定的测试类型,包括Android仪器测试。
  • 本机依赖项支持,例如Cocoapods,Swift Package Manager。
  • 包装和出版。
  • 建立变体支持。
  • 可扩展性。

快速开始:

  • 设置和使用说明
  • 教程
  • 文档
  • 示例项目

问题和反馈

amper使用YouTrack进行问题跟踪,在那里创建一个新问题来报告问题或提交想法。

在报告问题之前,请检查常见问题解答。

您还可以加入Slack频道进行讨论,或使用反馈表格共享您的反馈。

如何尝试

有多种尝试amper方法:

  • 在最新的Intellij Idea EAP中(说明)。
  • 使用命令行中的amper 。

例子

基础

这是一个非常基本的JVM“你好,世界!”项目:

main.ktMyTest.kt文件只是常规的kotlin文件,其中没有什么特别的。有趣的部分是module.yaml ,即amper模块配置文件。对于上述项目结构,这仅是:

 # Produce a JVM application 
product : jvm/app

就是这样。配置了Kotlin和Java工具链,测试框架以及其他必要的功能,并直接提供。您可以构建它,运行它,编写和运行测试等等。有关更多详细信息,请查看完整示例。

乘数

现在,让我们看一下与Android,iOS和Desktop JVM应用程序组成的综合项目,并在车队中使用以下项目结构:

请注意, src/文件夹如何包含Kotlin和Swift代码。当然,它也可以是Kotlin和Java。要突出显示的另一个方面是src文件夹中具有通用代码的共享模块以及平台特定的代码文件夹src@iossrc@android (了解有关项目布局的更多信息)。

这是ios-app/module.yaml文件的外观:

 # Produce an iOS application
product : ios/app

# Depend on the shared library module: 
dependencies :
  - ../shared

settings :
  # Enable the Compose Multiplatform framework
  compose : enabled

这非常简单:它定义了一个iOS应用程序,其依赖性对共享模块,并启用了构图的乘法框架。一个更有趣的示例将是shared/module.yaml

 # Produce a shared library for the JVM, Android, and iOS platforms:
product :
  type : lib
  platforms : [jvm, android, iosArm64, iosSimulatorArm64, iosX64]

# Shared Compose dependencies:
dependencies :
  - $compose.foundation : exported
  - $compose.material3 : exported

# Android-only dependencies  
dependencies@android :
  # Android-specific integration with Compose
  - androidx.activity:activity-compose:1.7.2 : exported
  - androidx.appcompat:appcompat:1.6.1 : exported

settings :
  # Enable Kotlin serialization
  kotlin :
    serialization : json
  
  # Enable the Compose Multiplatform framework
  compose : enabled

值得一提的是几件事。请注意,具有@资格赛的特定于平台的dependencies@android部分。平台预选赛可以在清单和文件布局中使用。预选赛组织特定平台的代码,依赖关系和设置。

自然,这些示例仅显示一组有限的amper功能。要更多地了解设计和功能,请查看文档,教程和示例项目。

更多例子

检查我们的这些示例项目:

  • JVM“你好,世界!”
  • 构成多平台
  • 在iOS,Android和桌面上撰写
  • kotlin乘以撰写UI和本机Android和iOS UI的Kotlin MultipLatform应用模板
  • 和其他例子
下载源码

通过命令行克隆项目:

git clone https://github.com/JetBrains/amper.git