2015-10-19 119 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

或者更好的是,如果你有自己的本地回购的公司如雷克萨斯,把两个版本在那里,只是相应地指向他们。

希望这会有所帮助。