Recientemente tuvimos un problema con un proyecto de Eclipse para uno de los miembros de nuestro equipo. Tomcat no estaba implementando JAR de la aplicación.
Eventualmente notamos que el .classpatharchivo Eclipse no era el mismo que para los miembros del equipo donde el proyecto estaba bien. Reemplazamos el .classpatharchivo con uno de un proyecto que estaba bien y la implementación de Tomcat se completó.
Sólo por curiosidad y para saber en qué buscar en el futuro si algo está mal, lo que está dentro de la .classpathy .projectarchivos. ¿Qué puedo agregar allí, qué significa todo esto?
java
eclipse
configuration-files
eclipse-wtp
Eclipse total
fuente
fuente

Respuestas:
Eclipse es un entorno de tiempo de ejecución para complementos. Prácticamente todo lo que ves en Eclipse es el resultado de complementos instalados en Eclipse, en lugar de Eclipse en sí.
La
.projectplataforma central de Eclipse mantiene el archivo y su objetivo es describir el proyecto desde una vista genérica de Eclipse independiente del complemento. ¿Cómo se llama el proyecto? ¿A qué otros proyectos en el espacio de trabajo se refiere? ¿Cuáles son los constructores que se utilizan para construir el proyecto? (recuerde, el concepto de "compilación" no pertenece específicamente a proyectos Java, sino también a otros tipos de proyectos)El
.classpatharchivo es mantenido por la función JDT de Eclipse ( característica = conjunto de complementos). JDT contiene varios de estos archivos "meta" en el proyecto (vea el.settingsdirectorio dentro del proyecto); El.classpatharchivo es solo uno de ellos. Específicamente, el.classpatharchivo contiene información que la función JDT necesita para compilar correctamente el proyecto: las carpetas de origen del proyecto (es decir, qué compilar); las carpetas de salida (donde para compilar a ); y entradas de classpath (como otros proyectos en el espacio de trabajo, archivos JAR arbitrarios en el sistema de archivos, etc.).Copiar a ciegas dichos archivos de una máquina a otra puede ser arriesgado. Por ejemplo, si se colocan archivos JAR arbitrarios en el classpath (es decir, archivos JAR que se encuentran fuera del espacio de trabajo y se hace referencia a ellos mediante un nombre de ruta absoluto), el
.classpatharchivo se vuelve no portátil y debe modificarse para que se pueda portátil. Hay ciertas mejores prácticas que se pueden seguir para garantizar.classpathla portabilidad de los archivos.fuente
gityMaven, lo que significa que tengo (por simplicidad) la carpeta "raíz" del repositorio (proyecto) con una solasrccarpeta (contiene un.javaarchivo simple "hola mundo" ) y del proyecto depox.xmlarchivo - así pues, si he entendido bien, no hay necesidad (o tal vez incluso necesariamente hay necesidad) para mantener el:.project,.classpathy.settings/los archivos / carpetas también en elgitrepositorio (ie- ellos se suman a la.gitignorede archivos, por ejemplo)?m2eclipsese encarga de eso por usted (o, al menos, eso es lo que se supone que debe estar haciendo)..projectno debería estar adentro.gitignore. En cuanto a.classpath- si se utilizam2eclipsey el espacio de trabajo está configurado para actualizar los proyectos de Maven en el arranque, entonces usted debe estar bien con la adición.classpatha.gitignorepero no he probado yo mismo..projecty.classpathde todos ellos y agregué a.gitignore. Todo funciona bien y no necesito actualizar continuamente estos archivos en Git con demasiada frecuencia..projectCuando se crea un proyecto en el espacio de trabajo, se genera automáticamente un archivo de descripción del proyecto que describe el proyecto. El único propósito de este archivo es hacer que el proyecto se describa a sí mismo, de modo que un proyecto que esté comprimido o lanzado a un servidor pueda recrearse correctamente en otro espacio de trabajo.
.classpathClasspath especifica qué archivos de origen Java y archivos de recursos en un proyecto son considerados por el constructor de Java y especifica cómo encontrar tipos fuera del proyecto. El generador de Java compila los archivos fuente de Java en la carpeta de salida y también copia los recursos en ella.
fuente
La referencia completa no está disponible para los archivos mencionados, ya que son ampliables por varios complementos.
Básicamente, los archivos .project almacenan la configuración del proyecto, como la configuración del generador y la naturaleza del proyecto, mientras que los archivos .classpath definen la ruta de clase que se usará durante la ejecución. Los archivos classpath contienen src y entradas de destino que se corresponden con las carpetas del proyecto; las entradas con se utilizan para describir algún tipo de entradas "virtuales", como las bibliotecas JVM o en caso de dependencias de los complementos de eclipse (las dependencias normales del proyecto Java se muestran de manera diferente, usando una entrada src especial).
fuente
Esta documentación de eclipse tiene detalles sobre las marcas en el
.projectarchivo: El archivo de descripción del proyectoDescribe el
.projectarchivo como:fuente