0

我正在尝试从给定的 ActionScript 类列表中编译 SWC 文件。我正在使用 compc 编译器。问题是有太多的类被分组到多个命名空间中,我发现指定每个单独的类要包含在 SWC 中是非常乏味的。有没有更简单的方法,比如简单地指定这些类的根目录?

目前我有这样的事情:

<?xml version="1.0"?>
<flex-config xmlns="http://www.adobe.com/2006/flex-config">
  <output>C:\SomeFolder\testSWC.swc</output>
  <compiler>
    <source-path>.</source-path>
  </compiler>
  <include-classes>
    <class>SomeNamespaceOne.One</class>
    <class>SomeNamespaceOne.Two</class>
    <class>SomeNamespaceOne.Three</class>
    <class>SomeNamespaceOne.Four</class>
    ...
    <class>SomeNamespaceFifty.One</class>
  </include-classes>
</flex-config> 

但我想要这样的东西:

<?xml version="1.0"?>
<flex-config xmlns="http://www.adobe.com/2006/flex-config">
  <output>C:\SomeFolder\testSWC.swc</output>
  <compiler>
    <source-path>. </source-path>
  </compiler>
  <include-classes>
    <class>SomeRootDirectoryOfClassesToCompile</class>
  </include-classes>
</flex-config>

这可能吗?

4

2 回答 2

1

我们想要类似的东西,在“蚂蚁”中。

我假设您没有使用 Flex Builder。在这种情况下,我肯定会推荐使用 Adob​​e 提供的 Ant 和 Flex Ant 任务。即使你使用 Ant,做你想做的事情也不容易,所以我在下面包含了我们的代码。

以下是我们的代码。我不记得我从哪里得到这个想法,所以不能感谢它的来源:)

        <pathconvert property="XXX.classes" pathsep=" ">

        <fileset dir="${basedir}/XXX/src">
            <include name="**/*.as"/>
            <include name="**/*.mxml"/>
        </fileset>

        <compositemapper>
            <packagemapper from="${basedir}\XXX\src\*.as" to="*"/>
            <packagemapper from="${basedir}/XXX/src/*.as" to="*"/>
            <packagemapper from="${basedir}\XXX\src\*.mxml" to="*"/>
            <packagemapper from="${basedir}/XXX/src/*.mxml" to="*"/>
        </compositemapper>

    </pathconvert>

    <compc optimize="true" debug="false"
    include-classes="${XXX.classes}" output="${BUILD_FOLDER}/XXX.swc">
            </compc>
于 2009-10-05T13:51:23.683 回答
1

就像 Tanmay 说的,你应该使用 ANT 任务来让生活更轻松,但是有一个更简单的 wach 可以在 compc ant 任务中包含整个目录。如果您只需要在 src.dir 中包含所有内容,您可以这样做:

<compc output="${target.dir}/foo.swc">
     <source-path path-element="${src.dir}"/>
     <include-sources dir="${src.dir}">
          <include name="**/*" />
     </include-sources>
</compc>
于 2009-10-05T15:06:14.173 回答