在Kotlin文档中,他们提到某种模块,例如documentation中的internal
修饰符。
但是我找不到术语 module 本身的任何定义。那么模块是什么意思?
答案 0 :(得分:24)
模块是一组编译在一起的Kotlin源:
- IntelliJ IDEA模块;
- Maven项目;
- Gradle源集;
- 通过一次Ant任务调用编译的一组文件。
这与docs article关于可见性修饰符的内容相同。 :)
答案 1 :(得分:1)
在Kotlin的documentation中,模块是一起编译在一起的Kotlin文件的集合:
<kotlinc>
Ant任务而编译的文件。那是 @hotkey的,但是我想补充这个答案。
According to Andrey Breslav,Kotlin的首席语言设计师:
Kotlin模块将一对一映射到IntelliJ的模块(iml文件)。
根据IntelliJ的documentation:
模块使您可以在一个应用程序中结合多种技术和框架。在IntelliJ IDEA中,您可以为一个项目创建几个模块,每个模块都可以负责其自己的框架。
涉及Maven项目或命令行编译时,Andrey states:
默认情况下,每个编译器运行的都是一个单独的模块:所有二进制依赖项都将被视为当前不在正在编译的模块中。
另外,Gradle源集是一个模块,但test
源集可以访问main的内部声明。
这意味着,如果您在Gradle配置中具有不同的构建风格,从而导致不同的源集(例如,对于生产和调试版本),则来自一个源集的内部类将不可用于另一源集。