2009-07-17 2 views
3

제가 만든 코드 라이브러리가 있습니다. 그것은 2 개의 다른 (타사) 라이브러리에 의존합니다. 현재, 라이브러리를 swc로 컴파일하면 제 3 자 라이브러리가 모두 포함됩니다. 제 3 자 라이브러리에 대한 코드 라이브러리를 컴파일하는 방법을 찾고 있지만 컴파일 된 swc에 포함시키지 않았습니다.제 3 자 라이브러리를 제외하고 COMPC를 사용하여 SWC 컴파일

이것은 분명히 내 라이브러리를 사용하는 모든 사용자에게 두 라이브러리가 모두 필요하다는 것을 의미하지만이 방법을 선호합니다. 나는 당신이 swc에 포함시킬 클래스를 선택할 수있는 Flex/Flashbuilder를 사용하고 있지 않다.

감사

답변

6

-external-library-path + = my.swc가 답입니다. 이 인수를 사용하면 컴파일시 사용되지만 swc에 배치되지 않는 코드를 지정할 수 있습니다. 분명히이 제외 된 clode는 swc가 사용될 때 여전히 필요합니다.

다른주의 사항과 달리 -external-library-path는 + = not =를 사용합니다. just =를 사용하면 플레이어의 저수준 클래스 및 기타 외부 라이브러리에 대한 참조를 중단합니다. 당신이 개미 승/FlexTasks를 사용하는 경우

, 대상은 다음과 같습니다

<target name="compileToSWC"> 
    <compc 
     output="${bin}/${SWCName}"> 
      <source-path path-element="${src}"/> 
      <!-- Source to include in SWC --> 
      <include-sources dir="${src}" includes="*"/> 
      <!-- Libs to exclude from the swc - Note append="true" which is equivillant to using +=--> 
      <external-library-path file="${thirdparty.libs}/SomeLib.swc" append="true"/> 
      <external-library-path file="${thirdparty.libs}/SomeOtherLib.swc" append="true"/> 
    </compc> 
</target> 

당신은 또한 내부의 모든 SWCS을 포함 할 경우 폴더 외부 라이브러리 경로를 가리킬 수 있습니다. Adobe의 FlexTasks 지침을 따라 flexTasks.jar 파일을 libs 폴더에 저장하고 external-library-path를 사용하여 폴더로 지정하면 flexTasks.jar 자체가 제외되어 빌드가 실패합니다. 이 문제를 해결하려면 flexTasks.jar을 별도의 폴더에 배치하거나 swcs를 위의 예와 같이 직접 타겟팅하십시오.

0

난 당신이 다른 사람이 종속성이해야 단지 수 있다고 생각하지 않습니다. 타사 라이브러리를 런타임 공유 라이브러리로 사용할 수 있으며 URL에 서드 파티 라이브러리가 필요하며 -runtime-shared-libraries=http://www.yourhost.com/my.swf -external-library-path+=my.swc을 컴파일 할 때 다음을 사용하십시오. -runtime-shared-libraries를 사용할 필요가 없지만 Adobe docs for full details about RSLs

관련 문제