2015-10-19 157 views
0

我正在兩個不同的平臺上開發應用程序。 除了依賴於平臺的特殊軟件包,基本代碼是相同的。
如何鏈接項目,同時僅保留一個基本代碼副本。
問題在於api依賴於特殊的包,它不允許我創建3個項目,例如Api,A,B,並將它們鏈接起來,如下所示。Eclipse鏈接共享代碼

E.g. PROJ A,PROJ B,凸出API

平臺的組件,其API - >一個應用
B平臺包,API - >乙應用

回答

0

我突然想起你可以將文件鏈接到另一個項目。

這是我創建的項目和我如何解決它。

項目基地 - >基礎API(你可以使用一個文件夾,注意,如果您創建一個項目,因爲依賴缺失,這將拋出一個錯誤) 項目平臺A - >一個包 項目B平臺 - >乙包

項目A API - >鏈接庫API文件,包括A平臺 項目B API - >鏈接庫API文件,包括B平臺

現在,您可以包括後失蹤編譯基本的API平臺包。

2

那麼你真的是兩種不同的API和相同的基碼。

Common Code Base -> Api1 
Common Code Base -> Api2 

一個解決方案是使用一個項目,並根據您傳入構建的參數進行構建。通過這種方式,您可以維護一個項目和一個代碼庫,但仍然可以根據傳入的內容構建兩種解決方案。您可以通過在構建中傳遞所需的版本來完成此任務。如果您使用Maven構建項目,則可以使用變量來區分這兩個平臺。

它可能是這個樣子

<project> 
    ... 
    <properties> 
    <platformVerion>platformA</platformVerion> 
    </properties> 
    <dependencies> 
    <dependency> 
     <groupId>com.mycompany</groupId> 
     <artifactId>myartifact</artifactId> 
     <version>${platformVerion}</version> 
    </dependency> 
    </dependencies> 
    ... 
</project> 

Maven的向您介紹如何在這裏做到這一點。

https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Available_Variables

雖然他們指的是在此版本編號的版本,你可以把它任何你想要的,包括platformA和plateformB。

現在,您仍然遇到了使用兩種不同API的代碼位置問題。這可以存儲在本地系統上,也可以存儲在像Lexis這樣的本地存儲庫中。對於本地存儲的代碼,您可以使用Maven的系統依賴關係來管理它。

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

或者更好的是,如果你有自己的本地回購的公司如雷克薩斯,把兩個版本在那裏,只是相應地指向他們。

希望這會有所幫助。