Так что вы на самом деле есть, 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's System Dependencies для управления этим.
https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
Или еще лучше, если у вас есть свой собственный локальный репозиторий для компании, как Lexus, поставить две версии там и просто указать на них соответствующим образом.
Надеюсь, это поможет.