2011-01-07 9 views
16

Współpracownik IntelliJ IDEA (pracujący nad innym projektem) pokazał mi niesamowitą adnotację @NotNull. Czytałem tutaj wiadomości na temat tego, jak rozpoczęcie dodawania @NotNull wszędzie zaoszczędziłem mnóstwo czasu i bólów głowy (a IntelliJ 10 może nawet automatycznie dodać @NotNull do starego kodu, gdy wykryje, że spustoszenie może spowodować spustoszenie).Używanie @NotNull w projekcie, w którym pracują zarówno programiści IntelliJ, jak i Eclipse.

Odkąd przeczytać mój pierwszy „Prawdopodobna naruszenie @NotNull” komunikat (w czasie rzeczywistym, w IDE, nawet na częściową .java pliku, który nie ma jeszcze skompilować) moja szczęka spadła i mam haczykowaty.

Tak więc zastanawiałem się: czy jest coś, co musi być znane, jeśli chcemy zacząć używać @NotNull w projekcie, w którym programiści używają Eclipse i IntelliJ?

Wiem, że IntelliJ jest dostarczany z annotations.jar. Czy jest to zgodne z Eclipse?

+0

@duffymo: Wiem, wiem ... Ale to wciąż wiedzieć, w jaki sposób możemy wykorzystać zarówno Eclipse oraz IntelliJ i nadal korzystać @NotNull. W pewnym sensie nie stanowi to problemu, jeśli Eclipse nie ostrzega w czasie rzeczywistym o prawdopodobnych naruszeniach @NotNull, o ile twórcy używający Eclipse nadal mogą używać adnotacji w swoim projekcie. Byłoby wspaniale, gdyby ktokolwiek z doświadczeniem mógł komentować :) Ale, tak ... IntelliJ dużo kołysze :) – Gugussee

+4

Nie ma nic bardziej frustrującego niż przeglądanie kodu opracowanego przez kogoś używającego Eclipse w IntelliJ. Ostrzeżenie wszędzie. – sblundy

Odpowiedz

6

Istnieje również możliwość przechowywania adnotacji poza źródłem. Ustawienia> Styl kodu> Generowanie kodu> Użyj zewnętrznych adnotacji. Adnotacje są następnie przechowywane w pliku adnotations.xml zamiast w źródle. W ten sposób użytkownicy Eclipse nigdy nie zobaczą adnotacji. Położenie pliku adnotations.xml można skonfigurować i prawdopodobnie najlepiej jest przechowywać plik z projektem w kontroli wersji.

Zobacz

http://www.jetbrains.com/idea/webhelp/using-external-annotations.html http://blogs.jetbrains.com/idea/2008/02/external-annotations/

+0

Pamiętam, że czytałem o tym co najmniej rok temu, ale nigdy go nie wypróbowałem. Czy wiesz, czy dobrze miesza się z VCSes i DVC, takimi jak Mercurial? Jestem trochę zaniepokojony, ponieważ bardzo często muszę przeskoczyć do innej gałęzi, wycofać, zastosować "drastyczne poprawki" itp. – Gugussee

4

Możesz użyć annotations.jar z Eclipse, ale prawdopodobnie nie dostaniesz żadnych korzyści ... Zobacz this SO post.

1

Findbugs ma podobną funkcjonalność, ale integracja jest bladym cieniem wbudowanej mocy IntelliJ.

2

Można obsługiwać oba IDE za pomocą @NonNull FindBugs i powiązanych wtyczek IDE.

1

Chciałbym zapytać, dlaczego jeden zespół nie używa wspólnego IDE. Dlaczego nie ujednolicić jednego lub drugiego? (Wiesz, który polecam, z którym się zgadzasz.)

+10

Ponieważ prawdopodobnie skończy się jako Eclipse i żaden użytkownik IntelliJ tego nie chce. – sblundy

+4

W rzeczywistości widziałem jedną firmę, w której ludzie chcieli zarówno środowiska projektowego Java *, jak i * końcowego produktu, który był całkowicie przenośny. Ich rozumowanie było takie, że jeśli niektórzy deweloperzy mogą pracować w Windows/Eclipse, inni w Linuksie/Eclipse, inni na Mac/IntelliJ, itd. I wdrożeni na, powiedzmy, zarówno Linux (na przykład lokalnie), jak i Solaris (na przykład w preprod i prod) oznaczało to, że projekt był lepiej zaprojektowany/skonfigurowany/skonfigurowany/itd. Myślę, że to ma sens. – Gugussee

+0

@sblundy: lol :) – Gugussee

Powiązane problemy