Maven a ručné stiahnutie závislosti do lokálneho úložiska

I stalo sa, že som potreboval stiahnuť zdrojáky servletu DefaultServlet z Tomcatu (kvôli inšpirácii pre implementáciu HTTP Ranges). Jedna možnosť je ponaháňať sa po tomcatovských stránkach, nájsť zdrojáky, rozbaliť ich a nájsť to, čo chceme.

Druhá možnosť spočíva v použití Mavenu.

Maven má zabudovaný plugin dependency:get, ktorým vie stiahnuť závislosť do svojho lokálneho úložiska. Pre Maven3 je to jednoduché, akurát je treba explicitne použiť konkrétnu verziu (2.4), pretože niektoré staršie verzie používajú odlišné kombinácie parametrov.

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DgroupId=org.apache.tomcat -DartifactId=tomcat-catalina -Dversion=RELEASE -Dclassifier=sources

Jednotlivé možnosti znamenajú:

  • org.apache.maven.plugins:maven-dependency-plugin:2.4 je plný názov pluginu (môj Maven 3.0.3 totiž implicitne hľadal verziu 2.1, čo je nešťastné.)
  • groupId, ąrtifactId zodpovedajú knižnici Tomcatu s príslušným servletom
  • classifier=sources dotiahne aj zdrojáky (bez nich by sa ťahali len JARy)

Verzia je LATEST, čo je špeciálny identifikátor pre poslednú regulárnu verziu, ktorá nie je snapshotom.

Týmto sa v čase písania blogu stiahne posledná verzia z úložiska Maven Central, čiže 7.0.25. Zdrojáky sa objavia v lokálnom úložisku v domovskom adresári a už sa dajú radostne prezerať.