¿Cómo administro los subproyectos del submodule de git en Eclipse?

(En caso de que importe, estos son proyectos Java de Android)

El Proyecto A es un proyecto de biblioteca.

El proyecto B depende de A. Para facilitar la administración de proyectos en general para otras personas en lugar de solo para mí, A está dentro de B a través de un submodule de git.

Esto significa que, si quiero hacer cambios a A y B , tendré lo siguiente:

  1. Proyecto A en
  2. Proyecto B
  3. El submodule de B de A , llamémoslo A ' . Mismo código, mismo nombre de proyecto, location diferente en el disco.

Idealmente, me gustaría poder cumplir con las siguientes condiciones:

  1. Poder modificar A directamente en Eclipse.
  2. Ser capaz de modificar B y hacer que se construya, haciendo reference a A ' , todo dentro de Eclipse.
  3. Realmente no necesito A como un proyecto importado / sin necesidad de modificarlo, pero me gustaría que construya automáticamente su file jar y haga que B lo mencione.

Lo que he intentado:

  1. Simplemente importando A y A ' : no funciona, porque Eclipse no puede importar dos proyectos con el mismo nombre. No puedo simplemente cambiar el nombre porque es un submodule; Tendría que hacer que cada actualización de git , inaceptable.
  2. Agregar una reference de biblioteca externa a A ' , manteniéndola fuera de Eclipse por completo: realmente no está mal de una solución, pero requiere al less una compilation externa desde la línea de command (usando ant ) antes de que funcione … no es la más conveniente.
  3. Hacer un enlace de origen: No es el más limpio porque A (y posteriormente A ' ) tienen múltiples carpetas de origen dentro de ellos, así que tendría que actualizar cada vez que agregue o elimine carpetas de origen en A. Prefiero usar el flask directamente.

¿Hay alguna manera de mantener todo esto en Eclipse, o debería hacer algo como # 2 pero con un command de compilation externo agregado para llamar a la ant en A ' ?

Tengo una situación similar. Importe B como proyecto existente (android) en eclipse después de que lo clone. Asegúrese de que el proyecto A esté inicializado y actualizado (a través de git).

Ahora, haga file-> import existing project (android si A es un proyecto de Android) y vaya a donde está el submodule A dentro de su proyecto B y añádalo.

Ahora tiene dos proyectos separados en eclipse. Puede cambiar ambos proyectos, y todo estará bajo el Proyecto B, porque allí es donde se ubican ambos proyectos.

Dado que esto es específicamente para Android, ¿ha buscado en las bibliotecas de Android?

En mi caso, tengo una versión gratuita (B) y una versión paga (C) de mi aplicación. Ambos comparten una base de código común (A). En eclipse, hago de A una biblioteca de Android y tanto B como C usan esta biblioteca y los 3 son repositorys de git separados. Con esta configuration, los cambios que hago en A están disponibles automáticamente en B y C y solo necesito mantener una base de código para cada proyecto. Sin sofisticados scripts de compilation / configs.

Creo que este tipo de simplicidad es lo que estabas buscando. Disculpas si he entendido mal la pregunta.

No estoy seguro de si tengo tu configuration correcta:

Proyecto A: src
+ /projecta.jar (binary del proyecto A)

Proyecto B: / src
+ / lib / Project A / src como submodule
+ /lib/projecta.jar (binary del proyecto A)

… ahora cambias AA 'y lo comstack, queriendo probarlo antes de empujar / comprometer, ¿verdad?
¿está bien que tengas el flask en B o necesitas que el origen del proyecto B se actualice a A '?

primer caso: haga que un file ant compile en el proyecto A y impleméntelo en B y que el file ant no es parte del proyecto a, es solo una solución local (es útil tenerlo en la vista de eclipse)

Bosquejo:

 <property name="projectb.libdir" value="..."/> set appropriate place in project B <javac fromdir="./src" todir="./build" ...><fileset ... /></javac> <jar /> from build to projecta.jar <copy /> projecta.jar to projectb.libdir 

La alternativa es crear un .jardesc en eclipse, para que pueda ejecutar "crear jar" en el clic derecho.

¿Es eso lo que querías hacer?

Eclipse Mars Milestone 5 (4.5.0M5) tiene compatibilidad multiproyecto. Solo necesita importar "Proyecto existente" desde la Subcarpeta.

Simplemente use un sistema de compilation de proyectos para rastrear sus dependencies (para eso es bueno).

Te sugiero que uses gradle (preferible en mi humilde opinión, pero comtesting cuál se ajusta mejor a tu context) o maven , ambos pueden manejar los subproyectos bastante bien y pueden generar la configuration del eclipse para ti.