2009-07-17 30 views
3

我有一個我已經構建的代碼庫。它依賴於其他2個(第三方)庫。目前,當我將庫編譯爲swc時,都包含第三方庫。我正在尋找一種方法來編譯我的代碼庫對第三方庫,但不包括他們在編譯的SWC。使用COMPC編譯SWC,不包括第三方庫

這顯然意味着任何使用我的庫的人都需要這兩個庫,但我更喜歡這種方式。我沒有使用Flex/Flashbuilder,我知道它允許您選擇要包含在swc中的類。

謝謝

回答

6

-external-library-path + = my.swc是答案,儘管不需要使用-runtime-shared-libraries。使用這個參數可以讓你指定編譯時使用的代碼,但不能放入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> 

您也可以指向外部庫的文件夾路徑在這種情況下,包括裏面的所有的SWC。請注意,如果您遵循Adobe的FlexTasks指南並將flexTasks.jar文件放入libs文件夾並使用external-library-path將其作爲文件夾進行定位,則flexTasks.jar本身將被排除,導致構建失敗。爲了解決這個問題,可以將flexTasks.jar放在一個單獨的文件夾中,或者像上例中那樣直接定位swcs

0

我不認爲你可以只要求別人有依賴關係。它可以使用第三方庫作爲運行時共享庫​​,您需要url上提供的第三方庫並在編譯​​時使用以下內容。 查看Adobe docs for full details about RSLs

相關問題