!!! Od 1.6.2022 jsem zaměstnán na HPP. Kde? To tady nemůžu napsat (kvůli Compliance). Ale na mém Linkedin účtu (nick: Jirka Pinkas) to určitě najdete. 😁 V současnosti mám volných 10 dní, které mohu alokovat na školení 😊

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

Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek

Certicon
David

Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.

Jaroslav

Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.

Retia
Jaromír


Novinky

14.9.2024: Github Copilot & IntelliJ Idea
Novinky v Github Copilot + IntelliJ Idea

31.8.2024: AI & Copilot

25.12.2023: testcontainers pro lokální vývoj