在 Flex mxmlc 编译器中使用“include-libraries”时可以使用相对路径吗?

Posted

技术标签:

【中文标题】在 Flex mxmlc 编译器中使用“include-libraries”时可以使用相对路径吗?【英文标题】:Can relative paths be used when using "include-libraries" in the Flex mxmlc compiler? 【发布时间】:2010-10-26 06:30:02 【问题描述】:

我试图强制将 .swc 中的所有类链接到我的 Flex 项目生成的 SWF 文件中。来自文档:

http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_03.html

include-libraries 库 [...]

将 SWC 文件中的所有类链接到生成的应用程序 SWF 文件,无论它们是否被使用。将此选项与仅包含那些在编译时引用的类的 library-path 选项进行对比。要链接一个或多个类,无论它们是否被使用,而不是整个 SWC 文件,请使用包含选项。此选项通常用于指定资源包。

不幸的是,当我将 .swc 的绝对路径指定为参数时,这似乎只适用于我的 Flex Builder 项目。我的 .swc 位于“lib”目录中,该目录作为“SWC 文件夹”添加到我的 Flex 项目配置中。有谁知道相对引用它的语法吗?

【问题讨论】:

【参考方案1】:

我总是用:

mxmlc [...] -library-path+=lib/whatever/default/ [...]

【讨论】:

【参考方案2】:

如果您仅讨论编译时,则该信息位于项目目录中的 .actionScriptProperties 文件中。

条目如下所示:

<libraryPath defaultLinkType="1">
  <libraryPathEntry kind="3" linkType="1" path="/OtherProjectInTheSameWorkspace/bin/LibName.swc" useDefaultLinkType="false"/>
  <libraryPathEntry kind="1" linkType="1" path="lib"/>
</libraryPath>

注意,第二个 libraryPathEntry 是当前项目中 lib/ 目录的相对路径。

如果 SWC 在其自己的项目中,则路径将相对于工作空间的根目录开始。

干杯

【讨论】:

【参考方案3】:

使用 src 目录中的 flex config.xml 文件。

如果您的 mxml 文件名为 project.mxml,则配置文件应为 project-config.xml

这是 FlexBuilder 内置编译器和 mxmlc 命令行编译器都会尝试加载的默认名称。

这是一个示例配置文件,其中仅包含您询问的特定条目。但是,您可以在 config.xml 文件中指定任何可以添加到命令行的内容。

<?xml version="1.0" encoding="UTF-8"?>
<flex-config>
<compiler append="true">
        <include-libraries append="true">
            <library>libs/myLibrary.swc</library>
        </include-libraries>    
</compiler>
</flex-config>

【讨论】:

以上是关于在 Flex mxmlc 编译器中使用“include-libraries”时可以使用相对路径吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 MXMLC 从命令行编译动作脚本

使用带有本机扩展的ant mxmlc任务

flex sdk 是不是需要 java jdk 来编译程序?

FLEX java.home PATH 反斜杠

找不到JRE(flex)

Java 程序文件 (x86) 和 64 位和 32 位程序文件