06 marca 2010

SpringSource Tool Suite (STS) i niewidoczny katalog domowy Grails pod Mac OS

Trochę mnie to zaskoczyło i wciąż nie mogę uwierzyć, że tak to działa. Jak się przekonałem, niuanse systemowe Mac OS mogą wprowadzić w pewne zakłopotanie.

Pod Mac OS niektóre katalogi są ukryte w menedżerze plików Finder, np. /usr/local.
Zwykłem instalować własne oprogramowanie właśnie w /usr/local i tak też zrobiłem z Grails 1.2.1. Siedzi sobie grzecznie w /usr/local/grails.
 devmac:~ jacek$ type grails
grails is hashed (/usr/local/grails/bin/grails)
"Nielada problem" możnaby powiedzieć. Kiedy przyszło mi konfigurować Grails w SpringSource Tool Suite (STS) pojawił się problem z niewidocznością /usr (pola Version i Grails home są tylko do odczytu)!
Nie mam bladego pojęcia, jak to rozwiązać poprawnie(j), ale u mnie wystarczyło podlinkować katalog /usr/local/grails na dowolny inny w widocznym katalogu i jego wskazać jako katalog domowy Grails.
 devmac:~ jacek$ ln -s /usr/local/grails grails
Wskazując na niego, wejdziemy do wskazywanego (ukrytego w Finder).
I Eclipse jest szczęśliwy, ale nie bardziej niż ja :)

Może być potrzebne odświeżenie zależności w projekcie, jeśli Grails został zdefiniowany po jego imporcie - menu kontekstowe Grails Tools > Refresh Dependencies.
Wtedy pojawi się wirtualny katalog w projekcie Grails Dependencies [Grails], gdzie jak rozumiem to, co występuje między nawiasami kwadratowymi jest nazwą, którą podałem podczas definiowania katalogu domowego Grails.

Oczywiście po wykonaniu tej sztuczki katalog ~/grails nie jest już potrzebny i można go skasować. Problem rozwiązany, ale wciąż pozostaje pytanie, czy nie ma prostszego rozwiązania. To wydaje mi się lekko przekombinowane.

p.s. Dla spragnionych wrażeń: istnieje możliwość włączenia opcji wyświetlania wszystkich plików i katalogów w Finder - więcej w artykule Show all files in the Finder.