2011-08-07 176 views
1

我們的產品中有一個Flex 4.0項目,我們正在嘗試爲其設置命令行構建。這將在我們的構建服務器上使用。Flex 4項目的命令行構建

到目前爲止,我們已經嘗試了三種方法,但沒有一個似乎令人滿意:

1)使用mxmlc的 - 這有,而不是使用那些已經存在的項目,我們必須明確地給所有依賴性的缺點。

2)使用ant(特別是fb.exportreleasebuild) - 效果很好,但我無法弄清楚如何用它設置工作區。現在,我可以預先設置一個工作區,但是我被認爲由於Eclipse使用絕對路徑而無法工作(請參閱http://forums.adobe.com/thread/826995)。 3)使用maven - 我還沒有嘗試過,但是通過閱讀一些教程(例如http://ria.dzone.com/articles/flex-and-maven?page=0,1&mz=8019-adobe),它看起來像依賴關係也必須手動指定。另外,我必須指定確切的Flex編譯器版本,這看起來不夠優雅 - 當我更改編譯器版本時,我不想更新我的構建腳本。

有沒有辦法從命令行構建一個flex項目,而無需手動指定所有依賴關係,也無需手動創建工作區?

回答

2

在上週我已經有了「快樂」來爲我們的項目設置maven構建。

對於一個沒有自定義字體,資源,單元測試,第三方框架等的簡單項目來說,實現它是相對容易的。對於其餘的東西,有一個重大的試驗和錯誤,直到你得到它的工作。

管理您需要手動安裝的依賴關係的一種方法是創建一個shell腳本,它將libs-directory中的工件自動安裝到本地存儲庫中,您也可以將其放入項目工作區。通過這種方法,您可以使用Eclipse構建的libs-directory和maven構建的本地maven回購。

至於Flex的版本 - 它只是POM中的一個屬性值。這就是它在maven世界中的工作方式 - 你管理POM,而不是下載一個新的SDK,然後更新項目屬性等等。這實際上是無比簡單的。

但是,當您需要嵌入字體時,您需要手動安裝一些屬於Flex SDK的工件,因此並不那麼簡單。爲了實現自動化,我還將整個Flex SDK作爲項目工作區的一部分,以便我可以在腳本中使用相對路徑而不是絕對路徑來引用它。

到目前爲止,Flex社區中最常用的方法是使用Ant構建。

Maven的設置和採用還比較困難。

+0

感謝您分享您的體驗。我最終做的是在構建機器上手動設置工作空間以指向一個交叉點,檢出項目到該交叉點,然後使用ant(fb.exportReleaseBuild)來執行構建。這工作很好,除了我不能做併發構建(我可以接受)。 – telewin

+0

我的方法有點不同。我將一個Maven項目導入Eclipse。然後添加Flex自然。然後配置源/輸出目錄。 Flex構建器不允許您配置某些內容 - 例如FlexUnitApplication.mxml的位置,也是AIR應用程序所需的XML應用程序描述符。在這種情況下,我通常會複製這些內容,以便它們出現在Flex Builder源(默認)包中,但也出現在約定位置的Maven中。然後我從Maven構建中排除重複的資源。 –