场景:有一个 Adobe Flex 3 项目,该项目使用SWC
个文件形式的多个第三方库和组件。
我们怎样才能知道那些SWC
文件中的“内部是什么”?具体来说,我如何确保项目使用所有这些组件的最新版本?
根据official Adobe Flex 3 help,“您可以为要打包和分发的组件定义”(sic)version
属性。有点像:
private static const version:String = '1.0.0.42';
但Adobe的创作工具并没有以任何特殊方式处理该属性,我怀疑社区并不经常使用它。
所有catalog.xml
组件中的文件SWC
似乎不包含任何有用的内容。
分发SWC
的开发人员通常是否以任何方式在这些文件中嵌入元数据?是否有标准方法从SWC
文件中检索版本,许可证,作者和版权等数据?
答案 0 :(得分:1)
我认为在.swc文件中包含版本名称是一种好习惯。例如,如果使用Mate框架,则swc文件名类似于Mate_08_5.swc。快速浏览一下,您可以看到您使用的是0.8.5版本。
就许可证而言,通常是在包含.swc文件的.zip中分发LICENSE文本文件。
答案 1 :(得分:1)
您可以查看RSL摘要。它们为特定库的每个版本附加不同的哈希值(catalog.xml文件中的swc / library / libraries / digests)。然后,您只需要使用已知的摘要值加载库。
如果您对正在使用的SWC文件没有任何控制权并且他们没有使用摘要,那么您可能会遇到供应商正在使用的任何专有版本控制系统。
答案 2 :(得分:0)
你提出了一个有趣的观点。
Adobe提供了一种在SWF中包含基本元数据的方法(因此也包含在SWC中),但这存储在二进制文件中,没有反编译就无法提取它。
有趣的是,如果知道如何阅读SWF,提取元数据相当容易。但大多数时候它不包含任何有用的信息,因为显然创作工具不会让你只是简单地查看它......
所以我想首先我们需要在我们的创作工具中进行一些集成,然后我们可以开始在元数据中找到有用的信息:)
答案 3 :(得分:0)
SWC通常与其他支持文件一起分发在一个包中,例如文档和示例。版本,许可证和作者信息通常作为该软件包的一部分在单独的自述文件或许可证文件中提供。我从未见过Flex世界中的组件开发人员将这类信息编译到SWC本身。