NetBeans 6.5 - Graal zdobyty!

Właśnie skończyłem przenosiny na swój nowy laptop, z którym męczyłem się przez ostatni tydzień. Jest to chyba najgorsza rzecz przy nowym sprzęcie, przenieś wszystkie aplikacje, ustawienia, zasoby... Dobrze, że taka sytuacja nie zdarza się zbyt często. Nieważne, mam to już (prawie ;-) z głowy, pewnie jeszcze kilku drobnych programów mi brakuje ale najważniejsze już są. I tak właśnie dzisiaj postanowiłem przetestować mają instalację Cygwina, czy przeniesione ustawienia działają. A jako test postanowiłem spróbować po raz wtóry zbudować własną dystrybucję środowiska NetBeans :-)

Z problemem zbudowania własnej dystrybucji NetBeans ze źródeł walczę już od jakiegoś czasu - Netbeans 6.5 - poszukiwacze źródła, przeszukiwanie zasobów Internetu nie wiele dało. Dużo informacji na stronach projektu jest raczej stara i dotyczy wersji 6.0 lub starszych. Nie zarażony tym jednak, jak napisałem na początku, postanowiłem sprawdzić czy może dzisiaj jest TEN dzień.

Uruchomiłem więc konsolę Cygwin, a dokładnie rzecz biorąc rxvt, zmieniłem katalog bieżący na ten ze źródłami NetBeans i wykonałem poniższą komendę w celu odświeżenia źródeł, znaczy się aktualizacji:

Lukasz@dl-m4300-1 ~/java-projects/netbeans
$ hg update

Dla nie zorientowanych, projekt NetBeans używa systemu Mercurial do zarządzania kontrolą wersji, o czym można poczytać w moim poprzednim wpisie. Powyższa komenda jest identyczna z svn update czy też cvs update i robi dokładnie to samo. I jak widać, przez ponad tydzień nic się nie zmieniło w projekcie. I w sumie dobrze ;-)

Lukasz@dl-m4300-1 ~/java-projects/netbeans
$ hg update

0 files updated, 0 files merged, 0 files removed, 0 files unresolved

Przechodzę do katalogu nbbuild, który to projekt jest odpowiedzialny za budowanie wszystkich składników systemu, to tutaj możemy zdefiniować jaki konkretnie ma być ten nasz jedyny NetBeans, trochę można o tym poczytać na stronie opisującą pojęcie klastrów WorkingWithNetBeansSources sekcja Working with subsets of the source tree.
Do uruchomienia procesu budowania potrzebujemy narzędzia Ant, a na stronie Quick Start with Ant można dowiedzieć się jak go używać, aby zbudować projekt. Wszystko sprowadza się do wywołania komendy ant w katalogu nbbuild ;-)

Lukasz@dl-m4300-1 ~/java-projects/netbeans/nbbuild
$ ant

I to wszystko, Ant sam pobiera z Internetu potrzebne biblioteki, a jeśli na ścieżce wyszukiwania (%PATH% lub $PATH) mamy klienta Mercurial - hg to wywoła go w celu aktualizacji projektu. Niestety nie jest w stanie użyć klienta dostarczanego przez środowisko Cygwin, ale to nie ma znaczenia. Sprawdza też, czy używamy JDK5, które jest wymagane do zbudowania NetBeans, nie może to być JDK6 ani tym bardziej JDK 1.4, więcej szczegółów w moim poprzednim wpisie.

Poprzednie moje próby rozbiły się o problem z błędnym hashem biblioteki pobranej z Internetu i tym razem też byłem ciekaw czy problem sam się rozwiązał...

...
[ciach] tu kilka tysięcy linii [/ciach]
....
build-nozip:
    [mkdir] Created dir: c:\java-projects\netbeans\nbbuild\netbeans\bin
     [copy] Copying 1 file to c:\java-projects\netbeans\nbbuild\netbeans\bin
     [copy] Copying 1 file to c:\java-projects\netbeans\nbbuild\netbeans\bin
     [copy] Copying 1 file to c:\java-projects\netbeans\nbbuild\netbeans\bin
    [mkdir] Created dir: c:\java-projects\netbeans\nbbuild\netbeans\etc
     [copy] Copying 1 file to c:\java-projects\netbeans\nbbuild\netbeans\etc
     [copy] Copying 1 file to c:\java-projects\netbeans\nbbuild\netbeans\etc
     [echo] c:\java-projects\netbeans\nbbuild\netbeans/platform9/lib/nbexec
   [hgexec] Execute failed: java.io.IOException: Cannot run program "hg" (in directory "c:\java-projects\netbeans"): 
   CreateProcess error=2, The system cannot find the file specified

BUILD SUCCESSFUL
Total time: 46 minutes 37 seconds

A jednak magia działa... nie wiem czy ktoś poprawił hash biblioteki, czy może to mój poprzedni notebook, może program antywirusowy, a może interwencja UFO ;-)

Nie ważne, ważne, że DZIAŁA!!!

Pozostało tylko uruchomienie swojego własnego NetBeansa, co sprowadza się do wywołania poniższej komendy, za stroną Running and Installing Builds

Lukasz@dl-m4300-1 ~/java-projects/netbeans/nbbuild
$ ant tryme

Trochę oczekiwania i taadaa....

Ekran powitalny

About

Teraz mogę zająć się rozwiązaniem problemu, który rozpoczął całą tą zabawę, czyli to o czym pisałem w Netbeans - chyba znów go polubiłem...

Pozdrawiam
--
Łukasz
http://www.lenart.org.pl/

Comments

Opcje przeglądania komentarzy

Wybierz preferowany sposób wyświetlania komentarzy i klinij na "Zapisz ustawienia", aby aktywować zmiany.
jpospychala's picture

a z ciekawości: jakie są

a z ciekawości: jakie są zalety NB skompilowanego ręcznie ze źródeł? nie ma nightly buildów?

Łukasz Lenart's picture

Np. możesz sobie zbudować

Np. możesz sobie zbudować środowisko do pisania tylko w Ruby i PHP, czego normalnie nie oferuje projekt NetBeans, to tak jak z dystrybucjami linuxa, każdą można przyciąć do własnych wymagań :D
A mniejsza ilość wtyczek wpływa na szybkość działania środowiska.

Pozdrawiam
--
Łukasz
http://www.lenart.org.pl/

jpospychala's picture

hm to mnie zaciekawiłeś

hm to mnie zaciekawiłeś jeszcze bardziej :)
a tych wtyczek nie da się dodawać i usuwać już w skompilowanym środowisku? O ile pamiętam kompilacja linuksa miała mieć tą zaletę że była pod kątem określonej platformy, no i wiele parametrów w źródłach C można było ustalić tylko na etapie kompilacji.
Druga sprawa, to że ilość wtyczek wpływa na szybkość działania środowiska. Czy netbeans nie minimalizuje przypadkiem liczby załadowanych wtyczek tylko do tych, które są niezbędne do wykonania operacji inicjowanych przez użytkownika (a.k.a. lazy loading)?

Łukasz Lenart's picture

Oczywiście, że można spędzić

Oczywiście, że można spędzić trochę czasu na instalowaniu wtyczek ale jeśli mamy duże środowisko programistyczne, możemy od razu dostosować tak IDE aby spełniało nasze wymagania ;-)

No tak myślałem, że porównanie do linuxa to nadużycie...

A co do tego lazy-loading to tym razem ty mnie zaskoczyłeś, coś jak Equinox w Eclipsie? Ciekawe...

Pozdrawiam
--
Łukasz
http://www.lenart.org.pl/