Jak nahrát vlastní projekt do Maven repozitáře (Central)?

publikováno: 9.8.2013

Právě se mi po dvou dnech útrap podařilo dokopat projekt jsitemapgenerator do Maven repozitáře. Tak jak na to? Pokud je vše dobře nastavené, pak stačí posloupnost následujících kroků:

  1. mvn clean
  2. git commit -a
  3. git push jsitemapgenerator NEBO git push git@github.com:jirkapinkas/jsitemapgenerator.git master:master
  4. mvn clean deploy
  5. mvn release:clean
  6. mvn release:prepare
  7. mvn release:perform
  8. A nakonec je nutné jít do https://oss.sonatype.org/index.html#stagingRepositories, uzavřít (close) a zveřejnit (release) repozitář.

Prakticky je vše popsáno zde: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide Dokud ale nemáte kompletně nakonfigurovaný systém, tak v průběhu bude docházet k různým chybám, které budou vyžadovat hodně Googlení. 

Tipy & Triky:

  • Na OS Windows jde všechno daleko hůř nakonfigurovat, bez Cygwinu a alespoň letmé znalosti příkazů v Linuxu se neobejdete. Na Linuxu (nebo Macu) jde všechno jednodušeji (jenže já bohužel vyvíjím na Windows) :(
  • Verze projektu MUSÍ končit příponou -SNAPSHOT
  • Všechny JUnit testy MUSÍ projít!
  • Nejprve se musíte zaregistrovat na https://issues.sonatype.org Tam také vytvoříte ticket na vytvoření nového projektu, například: https://issues.sonatype.org/browse/OSSRH-6930
  • Na OS Windows musíte nainstalovat Cygwin a při instalaci vybrat, že chcete také OpenSSH
  • Nejlepší je, když je projekt verzován na Github, to je pak moc pěkně popsané, v návodu jsou ale popsány i jiné možnosti.
  • Projekt musí splňovat určité standardy, to je také popsáno v návodu. Když se jich budete striktně držet, tak nebude problém s přijetím projektu do repozitáře. S tím také souvisí, že bych udělal release projektu do Maven repozitáře co nejdřív (nečekal bych až bude projekt naprosto dokonalý). Refactoring projektu tak, aby splňoval standardy je v průběhu vývoje otrava, na začátku vývoje to tolik nebolí.
  • Musíte nainstalovat GPG klienta http://www.gnupg.org/ a distribuovat veřejný klíč na server hkp://pool.sks-keyservers.net/, jak na to je tady: https://docs.sonatype.org/display/Repository/How+To+Generate+PGP+Signatures+With+Maven
  • Pak následuje posloupnost kroků uvedených na začátku, všechny musí projít. Přestože mám rád na obyč. práci "klikací" nástroje jako je eGit, m2e apod., tak pro práci s Maven repozitářem si myslím je lepší použít příkazovou řádku.
  • Dále je nutné přejít na web https://oss.sonatype.org/index.html kde je nutné vše překontrolovat (případně zjistit chyby) a odeslat projekt ke zveřejnění. (tento krok se dá zautomatizovat, to je úplně na konci návodu. Automatizaci tohoto kroku bych ale rozhodně doporučil nechat na později.)
  • Poté je ještě nutné poslat do ticketu odkaz na release: https://oss.sonatype.org/content/repositories/releases/cz/jiripinkas/jsitemapgenerator/
  • Po překontrolování správcem bude zprovozněna synchronizace do Centralu, ve kterém se objeví do dvou hodin od schválení. Další releasy se již budou synchronizovat automaticky. Jestli je projekt v Centralu ověříte takto: http://search.maven.org/#search%7Cga%7C1%7Cjsitemapgenerator

Reference

Skoleni bylo kazdopadne prinosne, i kdyz ve Springu uz chvilku delam, dodalo mi to kontext a hlubsi porozumeni. Libil se mi i prehled dalsich frameworku, jejich prakticke vyuziti a ze

Daniela

Se školením jsem byl naprosto spokojen. Výborný poměr teorie a praxe. Vypíchl bych i přístup školitele k probírané problematice, znalosti a zkušenosti. Je vidět, že Jirka je velký fanoušek Javy

Václav

Velmi se mi líbila přátelská a neformální atmosféra a viditelné nadšení a zapojení přednášejícího do problematiky a tudíž skutečně zajímavé příklady z praxe a možnost zeptat se prakticky na jakoukoliv

Ondřej


Novinky

16.11.2017: Java 9 přednáška
Na JavaDays 2017 jsem měl přednášku na téma Java 9, o kterou bych se rád podělil

26.9.2017: RebelLabs Developer Productivity Report 2017
Další rok, další RebelLabs report :-)

14.9.2017: Java release cycle zrychluje & Java Flight Recorder zdarma
Dlouhé mnohaleté prodlevy mezi jednotlivými major releasy v Javě končí!