Recentemente, tivemos um problema com um projeto Eclipse para um dos membros da nossa equipe. O Tomcat não estava implementando JARs do aplicativo.
Eventualmente, percebemos que o .classpath
arquivo Eclipse não era o mesmo dos membros da equipe em que o projeto estava OK. Substituímos o .classpath
arquivo por um de um projeto que estava OK e a implantação do Tomcat foi concluída.
Apenas por curiosidade e saber o que procurar no futuro se algo estiver errado, o que há dentro dos arquivos .classpath
e .project
. O que posso adicionar lá, o que tudo isso significa?
java
eclipse
configuration-files
eclipse-wtp
Eclipse total
fonte
fonte
Respostas:
O Eclipse é um ambiente de tempo de execução para plug-ins. Praticamente tudo o que você vê no Eclipse é o resultado de plug-ins instalados no Eclipse, em vez do próprio Eclipse.
O
.project
arquivo é mantido pela plataforma principal do Eclipse e seu objetivo é descrever o projeto a partir de uma visualização genérica do Eclipse, independente de plug-in. Qual o nome do projeto? a que outros projetos no espaço de trabalho ele se refere? Quais são os construtores que são usados para construir o projeto? (lembre-se, o conceito de "build" não se refere especificamente a projetos Java, mas também a outros tipos de projetos)O
.classpath
arquivo é mantido pelo recurso JDT do Eclipse ( feature = set of plugins). O JDT mantém vários desses arquivos "meta" no projeto (consulte o.settings
diretório dentro do projeto); o.classpath
arquivo é apenas um deles. Especificamente, o.classpath
arquivo contém informações que o recurso JDT precisa para compilar corretamente o projeto: as pastas de origem do projeto (ou seja, o que compilar); as pastas de saída (onde a compilar a ); e entradas do caminho de classe (como outros projetos na área de trabalho, arquivos JAR arbitrários no sistema de arquivos e assim por diante).Copiar cegamente esses arquivos de uma máquina para outra pode ser arriscado. Por exemplo, se arquivos JAR arbitrários forem colocados no caminho de classe (ou seja, arquivos JAR localizados fora da área de trabalho e referidos pela nomeação de caminho absoluta), o
.classpath
arquivo será renderizado como não portátil e deverá ser modificado para ser portátil. Existem certas práticas recomendadas que podem ser seguidas para garantir a.classpath
portabilidade do arquivo.fonte
git
eMaven
, ou seja, possuo (por simplicidade) a pasta "raiz" do repositório (projeto) com uma únicasrc
pasta (contém um.java
arquivo simples "olá mundo" ) e o do projetopox.xml
arquivo - então, se eu entendi bem, não há necessidade (ou talvez mesmo necessariamente nenhuma necessidade) para manter o:.project
,.classpath
e.settings/
arquivos / pastas, bem como nogit
repositório (ie-adicioná-los ao.gitignore
arquivo por exemplo)?m2eclipse
cuida disso para você (ou, pelo menos, é o que deveria estar fazendo)..project
não deve estar em.gitignore
. Em relação.classpath
- se você usam2eclipse
e seu espaço de trabalho é configurado para atualizar projetos Maven na inicialização, então você deve estar OK com a adição.classpath
de.gitignore
mas eu não testei isso sozinho..project
e.classpath
de todos eles e adicionei a.gitignore
. Tudo funciona bem e não preciso atualizar infinitamente esses arquivos no Git com muita frequência..project
Quando um projeto é criado na área de trabalho, é gerado automaticamente um arquivo de descrição do projeto que descreve o projeto. O único objetivo deste arquivo é tornar a descrição do projeto automaticamente, para que um projeto compactado ou liberado em um servidor possa ser recriado corretamente em outro espaço de trabalho.
.classpath
Caminho de classe especifica quais arquivos de origem e recursos Java em um projeto são considerados pelo construtor Java e especifica como localizar tipos fora do projeto. O construtor Java compila os arquivos de origem Java na pasta de saída e também copia os recursos nela.
fonte
A referência completa não está disponível para os arquivos mencionados, pois eles são extensíveis por vários plug-ins.
Basicamente, os arquivos .project armazenam configurações do projeto, como configurações do construtor e da natureza do projeto, enquanto os arquivos .classpath definem o caminho da classe a ser usado durante a execução. Os arquivos do caminho de classe contêm entradas src e target que correspondem às pastas no projeto; as entradas con são usadas para descrever algum tipo de entradas "virtuais", como as bibliotecas da JVM ou no caso de dependências de plug-ins do eclipse (as dependências normais do projeto Java são exibidas de maneira diferente, usando uma entrada src especial).
fonte
Esta documentação do eclipse possui detalhes sobre as marcações no
.project
arquivo: O arquivo de descrição do projetoEle descreve o
.project
arquivo como:fonte