¿Cuál es la mejor manera de desarrollar aplicaciones Java multiplataforma con el mismo núcleo, con git?

He desarrollado una aplicación Java. Tiene una amplia biblioteca central , que es compatible con Java 6 y se puede usar en todas las plataforms. Actualmente la aplicación se gestiona en un único repository git. En la etapa inicial usé AIDE en Android para desarrollar el núcleo. Más tarde me moví al escritorio (Eclipse) y creé la GUI del escritorio (Swing). Ahora, quiero crear la GUI de Android en Android con AIDE. Por supuesto, AIDE me alerta si se encuentran classs Swing o Java 7 (porque la GUI de escritorio) – y vica versa (desafortunadamente, Java no admite condiciones de compilation como C / C ++).

¿Cuál es el mejor método para manejar esta situación en git?

Tengo algunas ideas:

Sucursales : sucursales separadas para cada GUI / plataforma. Creo que esto hace que la fusión sea muy difícil.
Submodule : este es el más "oficial". Pero no tengo idea, ¿cómo puedo usarlo dentro de un proyecto de Eclipse? Gracias en consejo por todas las instrucciones para resolverlo.
Repositorios separados : para el peor de los casos …

Lo único que maneja git, son los files en un sistema de files. Cada confirmación corresponde a un set determinado de files, y git es realmente bueno para manejar esto.

Git no tiene una noción especial de los proyectos de Java. Los problemas que tienes deben manejarse por encima del nivel de git con las herramientas de compilation de Java.

Maven es una herramienta de construcción Java ampliamente utilizada. Puede considerar reestructurar su código fuente en los modules de Maven, uno para su funcionalidad principal, uno para la API de Swing y otro para la interfaz de Android. Todos estos pueden estar en un único repository git.