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

Podavane informace byly aktualni, byly vysvetlene i souvislosti, hlavne na uvod byl dobre vysvetlen kontext probiraneho tematu, teda co je co a jaky to ma vyznam. Navic bylo cele skoleni podporeno

Petr

S priebehom kurzu som bol nadmieru spokojný. Na kurze ma zaujali okrem klasickej teorie aj prakticke príklady ktoré boli podané s plnohodnotným vysvetlením. Myslím že v rámci školenia bol venovaný

František

Vazim si otvorenost lektora, ktory bol ochotny podelit sa o svoje dlhorocne znalosti a skusenosti v obore, pristup k studentom bol neformalny, co nakoniec vytvorilo vybornu atmosferu na pokladanie dotazou

Lukáš


Novinky

24.6.2018: Změny v licencování Oracle JDK
Od Java 11 (včetně) Oracle JDK bude zdarma pro vývoj a testování, ale ne pro produkční použití.

10.6.2018: Srovnání rychlosti mapovacích frameworků
Porovnání MapStruct, Dozer, Orika, ... z pohledu rychlosti

10.6.2018: JetBrains: State of Developer Ecosystem 2018
Statistika nuda NENÍ :-)