Co to jest format pliku PROJECT?
Plik .project to deskryptor XML, który Eclipse IDE umieszcza w katalogu głównym każdego projektu w obszarze roboczym. Jest to podstawowy plik metadanych, który identyfikuje folder jako projekt Eclipse i jest odczytywany za każdym razem, gdy Eclipse otwiera obszar roboczy. Plik jest generowany automatycznie przez IDE, ale zazwyczaj jest przesyłany do systemu kontroli wersji, aby inni programiści mogli zaimportować projekt bez ręcznej rekonfiguracji.
Elementem głównym XML jest <projectDescription>, zawierający elementy podrzędne dla nazwy projektu <name>, opcjonalny komentarz <comment>, listę <projects> z odniesieniami do zależności projektowych, sekcję <buildSpec> wymieniającą zarejestrowane programy budujące (takie jak org.eclipse.jdt.core.javabuilder dla przyrostowej kompilacji Java) oraz sekcję <natures>, która identyfikuje typ projektu (na przykład org.eclipse.jdt.core.javanature dla projektów Java lub org.eclipse.pde.PluginNature dla wtyczek Eclipse).
Eclipse odczytuje i zapisuje ten plik poprzez interfejs IProjectDescription w pakiecie org.eclipse.core.resources. Format ten jest stabilny od wersji Eclipse 3.x (2004). Wszystkie środowiska IDE oparte na Eclipse - w tym Spring Tool Suite, Zend Studio oraz starsze MyEclipse - współdzielą ten sam format .project. Narzędzia takie jak IntelliJ IDEA i VS Code (z rozszerzeniami kompatybilności z Eclipse) mogą importować pliki .project podczas migracji projektów. Usunięcie tego pliku powoduje, że Eclipse traci wszystkie metadane projektu dla danego katalogu.
Bezpieczeństwo
RYZYKO: LOWZwykły plik konfiguracyjny XML generowany przez IDE; nie zawiera kodu wykonywalnego. Złośliwie przygotowany plik .project mógłby odwoływać się do zasobów połączonych wskazujących na dowolne ścieżki w systemie plików (path traversal w obszarze roboczym Eclipse), ale wymagałoby to od ofiary zaimportowania go do Eclipse i uruchomienia budowania.
Szczegóły formatu
w pigułce- Import Eclipse w IntelliJ IDEA - IntelliJ odczytuje .project w celu importu projektów Eclipse, ale natywnie używa własnego formatu .iml.
- Spring Tool Suite (STS) - IDE oparte na Eclipse, które tworzy i odczytuje pliki .project w sposób identyczny jak oryginalny Eclipse.
Programy otwierające pliki PROJECT
Szczegóły techniczne
specyfikacja| Format pliku | XML (tekst jawny kodowany w UTF-8) |
| Element główny | <projectDescription> |
| Lokalizacja pliku | Zawsze w katalogu głównym projektu Eclipse |
| Kluczowe elementy podrzędne | <name>, <comment>, <projects>, <buildSpec>, <natures> |
| Rejestracja buildera | <buildSpec> wymienia polecenia budowania przyrostowego (np. org.eclipse.jdt.core.javabuilder dla Java) |
| Identyfikatory Nature | <natures> definiuje typ projektu (np. org.eclipse.jdt.core.javanature dla Java, org.eclipse.pde.PluginNature dla wtyczek) |
| Mapowanie API | Odczyt/zapis przez interfejs IProjectDescription w pakiecie org.eclipse.core.resources |
| Typowy rozmiar | 1-10 KB |
| Kodowanie | UTF-8 |
| Kontrola wersji | Zazwyczaj przesyłany do VCS; umożliwia import projektu bez ręcznej rekonfiguracji IDE |
| Stabilność formatu | Stabilny od Eclipse 3.x (2004); niezmieniony w obecnych wydaniach Eclipse |
| Kompatybilność między IDE | Używany przez Spring Tool Suite, Zend Studio; możliwy do zaimportowania przez IntelliJ IDEA i VS Code z wtyczkami Eclipse |
| Skutki usunięcia | Usunięcie pliku powoduje utratę wszystkich metadanych projektu Eclipse dla tego katalogu |
| Wydano | 2001 (Eclipse 1.0) |
| Najnowsza wersja | No formal versioned spec; format stable since Eclipse 3.x (2004) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | help.eclipse.org |
Konwersje PROJECT
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki PROJECT.
Najczęściej zadawane pytania
Czy mogę usunąć plik .project?
Czy powinienem przesyłać .project do Git?
Dlaczego Eclipse wyświetla komunikat „project already exists” podczas importu?
<name> znajduje się już w obszarze roboczym. Najpierw zamknij lub usuń istniejący projekt (bez usuwania zawartości), a następnie zaimportuj go ponownie.