Как скомпилировать файл SWC с несколькими пространствами имен - PullRequest
0 голосов
/ 05 октября 2009

Я пытаюсь скомпилировать файл SWC из списка заданных классов ActionScript. Я использую компилятор комп. Проблема в том, что существует так много классов, сгруппированных в несколько пространств имен, что я считаю очень утомительным указывать каждый отдельный класс, который будет включен в 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>

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 05 октября 2009

Как сказал Танмей, вы должны использовать задачи ANT, чтобы сделать жизнь проще, но есть еще более простой способ включить весь каталог в задачу 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>
1 голос
/ 05 октября 2009

Мы хотели что-то похожее, в «Муравейнике».

Я предполагаю, что вы не используете Flex Builder. В этом случае я определенно рекомендую использовать задачи Ant и Flex Ant, доступные в Adobe. Даже когда вы используете 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>
...