什么是Kotlin模块?

ubu*_*oid 28 kotlin

在Kotlin文档中,他们提到了某种模块,例如在修饰符的文档internal.

但是我找不到任何术语模块本身的定义.那模块是什么意思?

hot*_*key 28

模块是一组编译在一起的Kotlin源:

  • IntelliJ IDEA模块;
  • Maven项目;
  • Gradle源集;
  • 通过一次Ant任务调用编译的一组文件.

这与关于可见性修饰符的文档相同.:)

  • 你可以更具体一点,这是kotlin文档中的内容,但它的真正含义是什么. (10认同)
  • 对于一个Android项目,这是否意味着声明为内部的东西可以访问整个Android应用程序? (3认同)
  • @ s-hunter,不,它不会.Android项目是使用Gradle构建的,因此`internal`可见性意味着Gradle源集(除了测试源集可以访问他们测试的源集的内部组件). (3认同)
  • @hotkey,我明白了.如果整个android项目只包含一个gradle源集,在大多数情况下它是一个简单的应用程序,那么内部意味着它可以访问整个android项目.我对么? (2认同)

lmi*_*asf 11

从 Kotlin 的文档来看,模块是一组编译在一起的 Kotlin 文件:

  • IntelliJ IDEA 模块
  • 一个 Maven 项目;
  • Gradle 源集
  • 通过一次 Ant 任务调用编译的一组文件<kotlinc>

那是@hotkey的,但我想补充这个答案。

Kotlin 首席语言设计师Andrey Breslav 表示:

Kotlin 模块一对一映射到 IntelliJ 的模块(iml 文件)。

根据 IntelliJ 的文档

模块允许您在一个应用程序中组合多种技术和框架。在 IntelliJ IDEA 中,您可以为一个项目创建多个模块,每个模块都可以负责自己的框架。

当谈到 Maven 项目或命令行编译时,Andrey 表示

默认情况下,每个编译器运行都是一个单独的模块:所有二进制依赖项都将被视为不在当前正在编译的模块中。

此外,Gradle 源集是一个模块,但test源集可以访问 main 的内部声明。

这意味着,如果您的 Gradle 配置中有不同的构建风格,从而导致不同的源集(例如生产版本和调试版本),则一个源集中的内部类将无法在另一源集中使用。


归档时间:

查看次数:

7609 次

最近记录:

7 年,1 月 前