Niedawno mieliśmy problem z projektem Eclipse dla jednego z członków naszego zespołu. Tomcat nie wdrażał plików JAR aplikacji.
W końcu zauważyliśmy, że .classpath
plik Eclipse nie był tym samym, co w przypadku członków zespołu, w przypadku których projekt był OK. Zastąpiliśmy .classpath
plik plikiem z projektu, który był w porządku, a wdrażanie Tomcat zostało zakończone.
Tylko z ciekawości i aby wiedzieć, na co zwrócić uwagę w przyszłości, jeśli coś jest nie tak, co jest w plikach .classpath
i .project
. Co mogę tam dodać, co to wszystko oznacza?
java
eclipse
configuration-files
eclipse-wtp
całkowite zaćmienie
źródło
źródło
Odpowiedzi:
Eclipse to środowisko wykonawcze dla wtyczek. Praktycznie wszystko, co widzisz w Eclipse, jest wynikiem wtyczek zainstalowanych w Eclipse, a nie samego Eclipse.
.project
Plik jest utrzymywana przez rdzeń platformy Eclipse, a jego celem jest opisanie projektu od ogólnego, wtyczki niezależne widzenia Eclipse. Jak nazywa się projekt? jakich innych projektów w obszarze roboczym on dotyczy? Jakie kreatory są używane do tworzenia projektu? (pamiętaj, że pojęcie „budowania” nie odnosi się konkretnie do projektów Java, ale także do innych typów projektów).classpath
Plik jest utrzymywana przez JDT funkcji Eclipse ( feature = zbiór wtyczek). JDT przechowuje wiele takich plików „meta” w projekcie (zobacz.settings
katalog wewnątrz projektu);.classpath
plik jest tylko jednym z nich. W szczególności.classpath
plik zawiera informacje, których funkcja JDT potrzebuje do prawidłowego skompilowania projektu: foldery źródłowe projektu (czyli co skompilować); foldery wyjściowe (gdzie skompilować do ); i wpisy ścieżki klas (takie jak inne projekty w obszarze roboczym, dowolne pliki JAR w systemie plików itp.).Ślepe kopiowanie takich plików z jednego komputera na inny może być ryzykowne. Na przykład, jeśli dowolne pliki JAR są umieszczane w ścieżce klas (to znaczy pliki JAR, które znajdują się poza obszarem roboczym i są określane przez bezwzględne nazewnictwo ścieżek),
.classpath
plik jest renderowany nieprzenośny i musi zostać zmodyfikowany, aby przenośny. Istnieją pewne sprawdzone metody, których można przestrzegać, aby zagwarantować.classpath
przenośność plików.źródło
git
iMaven
, co oznacza, że mam (dla uproszczenia) folder „główny” repozytorium (projektu) z pojedynczymsrc
folderem (zawiera prosty.java
plik „hello world” ) i projektupox.xml
plik - tak, Jeśli ja zrozumiałem prawidłowo, nie ma potrzeby (a może nawet nie trzeba koniecznie), aby zachować:.project
,.classpath
i.settings/
pliki / foldery, jak również wgit
repozytorium (ie- dodać je do.gitignore
pliku na przykład)?m2eclipse
dba o to za Ciebie (a przynajmniej tak powinno być)..project
nie powinno być w.gitignore
. Jeśli chodzi o.classpath
- jeśli używaszm2eclipse
i twój obszar roboczy jest skonfigurowany do aktualizowania projektów Maven podczas uruchamiania, powinieneś być w porządku z dodawaniem.classpath
do,.gitignore
ale sam tego nie testowałem..project
i.classpath
ze wszystkich i dodałem do.gitignore
. Wszystko działa dobrze i nie muszę zbyt często aktualizować tych plików w nieskończoność w Git..project
Gdy projekt jest tworzony w obszarze roboczym, automatycznie generowany jest plik opisu projektu, który opisuje projekt. Jedynym celem tego pliku jest uczynienie projektu samoopisującym, tak aby projekt, który jest spakowany lub wydany na serwer, mógł zostać poprawnie odtworzony w innym obszarze roboczym.
.classpath
Classpath określa, które pliki źródłowe Java i pliki zasobów w projekcie są uwzględniane przez program budujący Java i określa, jak znaleźć typy poza projektem. Kreator Java kompiluje pliki źródłowe Java do folderu wyjściowego, a także kopiuje do niego zasoby.
źródło
Pełne odniesienie nie jest dostępne dla wymienionych plików, ponieważ można je rozszerzać za pomocą różnych wtyczek.
Zasadniczo pliki .project przechowują ustawienia projektu, takie jak ustawienia konstruktora i natury projektu, podczas gdy pliki .classpath definiują ścieżkę klas, która ma być używana podczas uruchamiania. Pliki classpath zawierają pozycje src i target, które odpowiadają folderom w projekcie; wpisy con są używane do opisania pewnego rodzaju "wirtualnych" wpisów, takich jak biblioteki JVM lub w przypadku zależności wtyczek eclipse (normalne zależności projektów Java są wyświetlane inaczej, przy użyciu specjalnego wpisu src).
źródło
Ta dokumentacja Eclipse zawiera szczegółowe informacje na temat znaczników w
.project
pliku: Plik opisu projektuOpisuje
.project
plik jako:źródło