我正在两个不同的平台上开发应用程序。 除了与平台相关的特殊包之外,基本代码是相同的 如何在仅保留基本代码的一个副本的情况下链接项目 问题在于api依赖于特殊包,它不允许我创建3个项目,例如Api,A,B,并将它们链接起来,如下所示。
E.g。 Proj A,Proj B,Proj API
平台A包,api - >一个应用程序
平台B包,api - > B app
答案 0 :(得分: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
或者更好的是,如果您有像雷克萨斯这样的公司拥有自己的本地仓库,请将两个版本放在那里并简单地指向它们。
希望这有帮助。
答案 1 :(得分:0)
我突然想起你可以将文件链接到另一个项目。
这是我创建的项目以及我如何解决它。
项目基础 - &gt;基本API(你可以只使用一个文件夹,注意如果你创建一个项目,这会因为缺少依赖项而抛出错误) 项目平台A - &gt;包裹 项目平台B - &gt; B包
Project A API - &gt;链接基本API文件,包括平台A. Project B API - &gt;链接基本API文件,包括平台B
现在,您可以在包含缺少的平台包之后编译基本API。