springsource-milestone
http://repository.springsource.com/maven/bundles/milestone
springsource-release
http://repository.springsource.com/maven/bundles/release
springsource-external
http://repository.springsource.com/maven/bundles/snapshot
Przeglądać repozytoria można pod tym adresem. Teraz przyszedł czas, żeby zdefiniować zależności wskazujące na biblioteki jakich chcemy użyć w naszym projekcie. Tutaj mała wzmianka. Nazewnictwo artefaktów uległo zmianie w stosunku do poprzednich wydań Springa, więc migracja ze starszych wersji dla projektów używających Mavena może okazać się kłopotliwa.
org.springframework
org.springframework.core
3.0.0.M3
Wydawać by się mogło, iż to już wystarczy. Niestety nie. Przy próbie ściągnięcia bibliotek okazuje się, że w repozytorium Springa nie ma wszystkich bibliotek, z których korzysta Spring. Prawdę mówiąc na tym etapie utknąłem. Na szczęście, ktoś wcześniej miał podobny problem i zasugerował dodanie repozytorium Atlassiana.
atlassian-m2-repository
https://m2proxy.atlassian.com/repository/public
Powyższe przygody sprawiają, że ciśnienie Ci wzrasta. Problem z zależnościami jest częstym przeżyciem dla użytkowników Mavena. Nie wiem do końca z czego to wynika? Czy problem leży po stronie twórców Mavena? Czy może ludzie, którzy umieszczają swoje biblioteki w publicznych repozytoriach nie zawsze dbają w należyty sposób o to, aby pobranie bibliotek odbywało się bezproblemowo?
4 komentarze:
Już wyjaśniam w czym leży problem. Kiedyś "nasz człowiek w mavenie", czyli Piotrek Tabor opowiadał nam o tym narzędziu na JUGu. Potem w ramach o spotkaniowej dyskusji wyszła sprawa zależności. Okazuje się, że w repozytorium Mavena mogą być przechowywane tylko biblioteki o konkretnych licencjach zgodnych z Apache Licence i GPL. Spring nie jest rozpowszechniany na licencji springowej która ogranicza dostęp do źródeł. Tym samym nie można umieścić artefaktów springa w repo mavena.
Atlantiss znowu rozpowszechnia swoje produkty na różnego typu pół komercyjnych licencjach z zamkniętym kodem źródłowym.
Faktem jest, że w mavenie brakuje takiego małego kawałka kodu, który by pozwalał na dodanie do pom.xml informacji o dodatkowych repozytoriach do przeszukania. Względnie jeszcze go nie odkryłem :D
"Okazuje się, że w repozytorium Mavena mogą być przechowywane tylko biblioteki o konkretnych licencjach zgodnych z Apache Licence i GPL."Wydaje mi się, że jest trochę inaczej, ale mogę się mylić. Jeśli dobrze Cię zrozumiałem, to chodzi Ci o "fizyczne" repozytoria Mavena, ale w tym przypadku mamy repozytoria Springa, który chyba może hostować u siebie zewnetrzne projekty (z innymi licencjami aniżeli licencja Springa)? O ile licencje tych projektów na to pozwalają. Jeśli tak jest, to dziwię się, że biblioteki te są dostepne na prywatnym serwerze Atlassiana a nie są umieszczane na serwerze Spring Source, czy jak to się teraz zwie. Innym przypadkiem są biblioteki Sunowskie, których licencja nie pozwalała na umieszczanie ich w zewnętrznych repozytoriach. Jeśli się mylę, to chetnie się dowiem jak to naprawdę jest.
Chodzi o fizyczne repozytorium. Nie tylko to z repo1.maven.org, ale w praktyce każde. Atlantiss może mieć w licencji zapis, że niemożna dystrybuować ich produktów jako stand-alone. Innymi słowy tylko oni mają możliwość wystawiania swoich paczek w repozytorium. Spring jest zależny od ich narzędzia, ale ze względów licencyjnych nie może nie umieścić tej zależności u siebie w repo.
Generalnie problem polega na tym, że maven opiera się na założeniu, że cały kod jest otwarty. Niestety w praktyce popadamy w zawiłości prawa autorskiego i tym samym niweczymy pomysł.
Jeśli owa brakujaca biblioteka została stworzona przez Atlassiana (teraz nie pamietam co to dokładnie było), to w rzeczy samej, masz rację.
Prześlij komentarz