我有一个Intellij模块,它使用另一个模块作为库。可以使用以下方式链接库:Merged,External,Include或Test。
这四个选项意味着什么?他们的表现如何不同?
在Intellij论坛上,有人提到“合并”和“外部”类似于Flash Builder的“合并到代码”和“运行时共享库”。但如果是这样的话,包括和测试会做什么?
答案 0 :(得分:11)
IntelliJ documentation仅链接到Adobe's description of RSLs,但这是四种设置的工作方式:
合并
链接项目中实际使用的所有库符号,并将它们包含在目标二进制文件中。这应该是创建SWF可执行文件的默认设置。
包括
链接库中的所有符号,无论它们是否被使用,并将它们包含在目标二进制文件中。这在创建扩展库时很有用(包括您使用其他功能扩展的模块,以便以后只需要包含一个SWC)或经常使用getDefinitionByName
时。
排除
在编译时链接库类,但不将它们包含在目标二进制文件中。这意味着目标二进制文件保持较小,但当然,排除的依赖项必须编译到其他库中,或者作为RSL存在,以便在运行时可用 - 如果没有它们,程序就无法运行。此设置在创建库SWC时特别有用,每个库都包含playerglobal.swc及其他所有依赖项,否则。
测试
库类仅包含在用于FlexUnit测试的临时二进制文件中。这可以防止FlexUnit框架本身以及其他测试框架(如Hamcrest或Mockolate)膨胀生产二进制文件。