2011-08-01 13 views
11

Po zmianie ścieżki klas projektu Eclipse plik .classpath zmienia się tak, że po wysłaniu projektu do innej osoby (w tym do pliku .classpath) ma tę samą ścieżkę klasy. Ale gdy zmienisz zasób na "Pochodny", nie zmieni się ani .project ani .classpath. Więc gdzie jest Eclipse przechowujący informacje o plikach i folderach?Skąd Eclipse przechowuje informacje o plikach "pochodnych"?

Edytuj: Znalazłem to: "currently the derived state is stored in a single bit within a flag integer associated with each resource in the workspace tree file", ale jeśli ktoś mógłby dokładniej wyjaśnić, gdzie ta flaga jest zapisana, i jak ją zmienić, byłoby to bardzo cenne.

+0

+1: To naprawdę ciekawe pytanie ... ale obawiam się, należy zmienić strukturę projektu zamiast „hacking” wnętrzności eclipse :-) – home

+0

@ Aby wyjaśnić nieco dalej, mamy system do automatycznego generowania naszych plików '.project' /' .classpath' za pośrednictwem ant. Jeśli mógł również automatycznie ustawić flagę Pochodną na odpowiednich folderach, które byłyby świetne. Pomyślałbym, że to część '.classpath', ale skoro tak nie jest, chciałbym się dowiedzieć, gdzie ona jest i zobaczyć, czy można ją ustawić w inny sposób, bez zbytniego zagłębiania się w Eclipse-land. – MatrixFrog

+2

Bit 'Derived' powinien być ustawiony przez producentów w Eclipse. Jeśli chcesz ustawić bit, jedynym sposobem jest użycie API 'IResource' - części wtyczki' org.eclipse.core.resources'. –

Odpowiedz

6

Długa dyskusja na temat this eclipse bug, która żąda, aby stan wyprowadzenia był zachowywany z ustawieniami projektu zaćmienia (które mogą być udostępniane), zamiast w metadanych obszaru roboczego (których nie można). Błąd jest dość stary i pozostaje bezadresowy, ale jest sporo dyskusji.

Moja sytuacja polega na tym, że generuję wiele plików klas java w ramach kompilacji mrówek w katalogu obszaru roboczego i chcę oznaczyć je jako wyprowadzone, aby nie pojawiały się w wynikach wyszukiwania. Myślę, że opcja wezmę to chyba, aby dostosować mój automatyzację tak, że wyznacza jego wytworzonych zasobów wyprowadzoną: sytuacja

IResource.setDerived(true); 

PO wydaje się nieco inaczej. Najprawdopodobniej spróbowałbym oprzeć ścieżki budowania mojego projektu na zmiennej, którą każdy użytkownik może zdefiniować niezależnie, więc twój plik .classpath jest taki sam dla wszystkich użytkowników.

2

To nie jest odpowiedź na to pytanie, ale coś, co jest bezpośrednio związane z tym, co uważam za problem pod ręką. Jest to możliwość dzielenia się plikami, które należy wyprowadzić w projekcie z innymi.

Znaleziony tej wtyczki do zajęcia się, że: http://nodj.github.io/AutoDeriv/

+0

Dziękujemy! Dokładnie to, co chciałem! – Nate

Powiązane problemy