¿Cómo puede un equipo compartir un proyecto de eclipse cuando su entorno de trabajo es diferente?

Cuando se comparte un proyecto con miembros del equipo a través del control de versiones, se acostumbra incluir el .project en el código fuente bajo el control de versiones. Esto asegura que otros miembros del equipo obtengan todas las dependencias y recursos para el proyecto. Pero el .project usa rutas completas / enraizadas al recurso, y no todos los miembros de un equipo trabajarán en el mismo entorno. Incluso si todos los miembros están en la misma plataforma, las rutas a menudo pueden estar en el directorio de inicio del usuario.

Para el archivo .classpath, podemos solucionar este problema utilizando variables de ruta de compilación. Cada miembro define la ruta a la ubicación de las bibliotecas dependientes en su sistema, y ​​.classpath solo se refiere a la variable.

Esta es una preocupación particular para el proyecto Grails: cuando agregamos un complemento, actualiza el .project en consecuencia.

preguntado el 16 de mayo de 11 a las 18:05

5 Respuestas

Enfoque general

Como han mencionado otros, no debe mantener los archivos IDE en VCS, debe mantener una descripción del proyecto independiente de IDE en VCS y generar los archivos de proyecto específicos de IDE a partir de ellos.


Ejemplo de Java-Maven

Mantenga los archivos pom.xml en VCS y genere los archivos Eclipse ejecutando mvn eclipse:eclipse


Ejemplo de Griales

Un proyecto de Grails es descrito por application.properties y grails-app/conf/BuildConfig.groovy. Estos archivos están presentes en todas las aplicaciones de Grails. Puede generar las descripciones del proyecto Eclipse a partir de ellos ejecutando:

grails integrate-with --eclipse

Este comando también es compatible con otras herramientas como IntelliJ y Textmate

contestado el 17 de mayo de 11 a las 13:05

Los propios recursos de la OMI no deberían formar parte del proyecto en absoluto. Hay un excelente complemento llamado m2eclipse que simplifica tales tareas usando Maven. Simplificará enormemente su gestión de dependencias. Todo lo que tendría que mantener en su sistema de control de versiones, además de su código fuente, es la configuración del proyecto (pom.xml): todas las dependencias se descargarán y almacenarán en caché automáticamente sin importar en qué entorno trabaje el desarrollador. Hay muchas más ventajas en este enfoque - solo leer en eso :)

ACTUALIZACIÓN: Acabo de notar la etiqueta "grial" en su pregunta. si está usando Groovy - Maven se puede reemplazar con Gradle. STS es probablemente la mejor compilación de Eclipse para usar si está codificando en Groovy. Próxima versión de STS tendrá soporte para Gradle.

contestado el 16 de mayo de 11 a las 23:05

Gracias. De hecho, estamos usando STS. No estoy buscando específicamente incluir recursos en el proyecto, pero "sucede" bajo la cubierta cuando uso install-plugin. Definitivamente estaré atento a la compatibilidad con Gradle en STS: Nancy Deschênes

No creo que sea una práctica estándar incluir el archivo del proyecto. Personalmente le digo a mi VCS que ignore todos los archivos IDE y que solo use VCS como fuente. Incluyo en el nivel raíz un README que les dice a otros cómo configurar el proyecto (por ejemplo, los archivos jar están en lib)

contestado el 16 de mayo de 11 a las 22:05

Es una cuestión de dinámica de equipo. Para equipos donde se utilizan multitud de herramientas, colocar archivos de metadatos IDE en VCS puede ser contraproducente. Para los equipos que se han estandarizado en un solo IDE, colocar metadatos IDE en VCS simplifica drásticamente el inicio de nuevos desarrolladores y la distribución de cambios estructurales. - Konstantin Komissarchik

¿Pones todos tus frascos en VCS? eso parece un desperdicio (y haría que el pago inicial tomara bastante tiempo, esperando que los archivos se transfieran) - Nancy Deschênes

@nancy, no puedo decir si eso es sarcástico, pero suponiendo que no, la respuesta es que pongo frascos en VCS, ya que ponerlos allí no causa ningún conflicto y todos los necesitan. Incluidos los servidores de CI. - hvgotcodes

La función de enlaces de recursos a la que se refiere también tiene la capacidad de utilizar variables de ruta. Estos se definen en Preferencias -> General -> Espacio de trabajo -> Recursos vinculados.

contestado el 16 de mayo de 11 a las 22:05

Gracias. Intenté esto, incluso aprovechando una variable existente (PROJECT_LOC) y funcionó bastante bien. Me requirió editar el archivo .project a mano después de que el complemento Grails lo edita, pero permite compartir fácilmente los recursos. Nancy Deschênes

Puede intentar mantener los archivos del proyecto en un Dropbox compartido con una ruta acordada para cada desarrollador.

contestado el 16 de mayo de 11 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.