2008-10-16 9 views

Respuesta

10

Creo que la mejor manera es hacer que el proceso de compilación sea independiente de IDE. Esto significa que su proyecto no debe basarse en ningún archivo IDE específico para compilar, sino que debe usar un sistema de compilación externo, como Apache Maven, Apache Ant, o incluso crear scripts personalizados. Maven es compatible con los IDE Java más populares, ya sea directamente o mediante complementos.

Si no desea utilizar un sistema de compilación externo, al menos debe hacer que el proyecto sea tan fácil de configurar como sea posible (es decir, teniendo carpetas estándar para bibliotecas compartidas y otras dependencias). Cuando he trabajado en equipos con múltiples IDEs en el pasado, pasé la mayor parte del tiempo resolviendo dependencias ya que los requisitos previos para construir el proyecto cambiaron con el tiempo. En el peor de los casos, incluso puede terminar con desarrolladores que no se molestan en obtener la última versión del repositorio de control de versiones, ya que piensan que la configuración del nuevo proyecto es una molestia.

Si su proyecto tiene muchas dependencias de biblioteca, creo que es una buena idea ponerlas a disposición en forma binaria en el repositorio de control de versiones. De esta forma, las personas no tienen que resolver todas las dependencias de las dependencias, etc. solo para construir un solo proyecto. Sin embargo, esto requiere que tengas a alguien responsable de mantener los binarios "oficiales" actualizados siempre que cambien. (Esta es más o menos la misma filosofía utilizada por el repositorio de Maven, pero los principios se pueden aplicar manualmente incluso cuando no se usa Maven).

6

Bueno, esa es una pregunta bastante autocomplaciente.

Los archivos que no se deben controlar en el control de código fuente son archivos que tienen que ver con los propios IDEs.

Deje que los desarrolladores generen estos archivos.

Si usa Maven, puede generar los archivos como .project de Eclipse y .classpath para usted. Eclipse en general es muy fácil de usar con una estructura básica de archivos (con la nueva opción Java Project).

Creo que Maven también tiene compatibilidad con Netbeans, aunque no está seguro sobre IntelliJ.

El sitio de Maven es maven.apache.org.

+0

Para aprovechar esta respuesta, consulte http://maven.apache.org/plugins/index.html. Cerca de la parte inferior se encuentran los complementos para Eclipse e IDEA. Usted carga el proyecto en su IDE (sin los archivos específicos de IDE, y luego deja que el complemento cree esos archivos para usted. –

+0

Los complementos de NetBeans están aquí: http://mojo.codehaus.org/plugins.html ... ¿por qué puede '¿Tengo un representante para esto? –

+0

Los proyectos generados no incluyen ajustes de configuración específicos del proyecto para los complementos que pueda tener. No es un gran problema cuando se inicia, pero téngalo en cuenta cuando actualice. – ddimitrov

3

Hay muchas consideraciones al usar múltiples conjuntos de herramientas dentro del mismo equipo de proyecto. Por ejemplo, mi equipo tiene desarrolladores de Java que usan IntelliJ y la mayoría de los desarrolladores de front-end (JSP/CSS/HTML) que usan eclipse. Estamos en el proceso de migrar a los usuarios de Eclipse a IntelliJ debido a algunos complementos de IntelliJ que hemos desarrollado y que brindan soporte extendido para nuestro entorno. No vamos a desarrollar los complementos para múltiples plataformas, por lo que estamos estandarizando IntelliJ en todos los ámbitos.

En términos de archivos específicos, puedo hablar con IntelliJ. Hemos verificado nuestros archivos .ipr y nuestros archivos .iml. No verifique archivos .iws. Si también tiene usuarios de Eclipse, configure su proyecto IntelliJ para leer/almacenar información de dependencia en el archivo .classpath y confírmelo a su VCS.

5

Para cada IDE que tenga más de un desarrollador, registre todos los archivos de respaldo. Por qué reinventar la rueda en cada escritorio.

He hecho esto con muchos IDEs diferentes, y todavía no he visto un conflicto de nombre de archivo.

De hecho, incluso cuando solo un desarrollador usa un IDE en particular, es una ventaja para él la versión de los archivos de respaldo, por la misma razón que usted versiona los otros archivos en su entorno de desarrollo: history, diffing, comentarios, etc.

+1

es importante hacerles la vida más fácil a los desarrolladores para que puedan unirse al proyecto y ponerse en funcionamiento instantáneamente – anjanb

+0

De hecho, otra razón. En mi proyecto actual, estimo que ahorramos una docena de horas por cada nuevo desarrollador que puede extraer las configuraciones IDE junto con la fuente. –

4

Para Eclipse, eso sería archivos .classpath y .project.

Mi equipo utiliza Maven, y se desaconseja a los desarrolladores que comprueben archivos específicos de Eclipse. Debido a que se pueden generar desde Maven, estos archivos son redundantes. Además, comprobar archivos específicos del proyecto parece ahorrar tiempo, pero generalmente termina siendo un problema debido a las variaciones en las estaciones de trabajo de los diferentes desarrolladores, lo que da como resultado perder tiempo resolviendo conflictos en los archivos específicos de IDE. La única forma de evitarlo es forzar a todos a configurar su entorno de la misma manera, lo que va en contra del enfoque independiente del IDE.

-1

Normalmente, consideraría esta una mala idea. No estoy seguro de qué tipo de entorno es este (¿tal vez de código abierto?), Pero realmente sería una mierda para admitir varios IDEs. Una cosa que recomendaría si esto es inevitable sería estandarizar sus compilaciones en scripts ant.Si tiene un gran conjunto de dependencias, esta puede ser la forma más fácil de obtener una compilación predecible en todas las plataformas.

Si uno de los IDEs pasa a ser RAD (basado en eclipse), hay una carpeta completa llamada .settings que no desearía incluir en el SCM.

+0

¿Cuál es el problema con el uso de múltiples IDEs? Si no estás haciendo algo específico para un IDE (como usar el editor de GUI de Eclipse), entonces funcionaría bien. – Herms

1

Admitimos intencionalmente múltiples IDEs del mismo repositorio SVN. Nuestro pensamiento era que queríamos asegurarnos de que, si una persona nueva se unía al equipo o alguien tenía que empezar a trabajar en una máquina nueva, queríamos que pudieran consultar la base de código, importarla al IDE e inmediatamente tener un trabajo. configuración capaz

Lo que eso significa para el desarrollador final es que no deberían cometer sus cambios a los archivos IDE. Todo lo demás (por ejemplo, src, test, lib, etc.) se convierte en el conjunto que normalmente actualizamos y confirmamos todos los días.

El beneficio lateral es que hemos eliminado por completo las guerras de IDE aquí: las personas de Netbeans y Eclipse viven en perfecta armonía (mirando con recelo a la gente de IntelliJ, pero bueno ... ;-).

0

Renombramos nuestros archivos IDE para el registro con una extensión adicional .deletethis o similar. Cuando una persona nueva revisa el proyecto, simplemente le quitan la extensión adicional y están listos para ir. De esta manera, evitamos conflictos de control de fuente con los archivos de proyecto a medida que las personas modifican sus entornos. Y no tiene que preocuparse por educar a los nuevos desarrolladores para que no revisen esos archivos.

Cuestiones relacionadas