Maven repositáře

Maven repositáře

Last modified by Jakub Jirůtka on 2015-10-09, 00:54

Fakultní Maven repositáře sídlí na https://repository.fit.cvut.cz/maven/, kde je také dostupné webové rozhraní správce repositářů Artifactory. Všechny repositáře jsou veřejně dostupné ke čtení, zápis je povolený pouze autorizovaným uživatelům (viz sekce „Jak nahrát svoje artefakty do Maven repositáře?“).

Seznam repositářů

Lokální repositáře

Máme celkem šest lokálních repositářů (dle obvyklého členění), z nichž jsou pro vás nejdůležitější první dva:

Všechny tyto repositáře jsou také dostupné pod jedním virtuálním repositářem local-repos.

Vzdálené repositáře

Dále poskytujeme cachující proxy na vybrané veřejné repositáře:

Tyto všechny jsou dostupné přes virtuální repositář: remote-repos.

Díky tomu se nemusíte starat o to, ve kterém repositáři je ta která knihovna dostupná, stačí si nastavit jen remote-repos. Pokud vám zde bude nějaký artefakt chybět a nachází se v nějakém veřejném repositáři, zažádejte si o jeho přidání.

Nastavení repositářů v projektu

Pracujete-li na školním projektu, nastavte si ve svém POM pouze tyto dva repositáře:

<project>
    ...
   <repositories>
       <repository>
           <id>cvut-local-repos</id>
           <name>CVUT Repository Local</name>
           <url>https://repository.fit.cvut.cz/maven/local-repos/</url>
       </repository>

       <repository>
           <id>cvut-remote-repos</id>
           <name>CVUT Repository Remotes</name>
           <url>https://repository.fit.cvut.cz/maven/remote-repos/</url>
       </repository>
   </repositories>
    ...
</project>

Doporučuji vycházet z archetypů FIT, kde už je pro vás vše přednastavené. Najdete tam archetypy pro různé typy projektů a hlavně rodičovská POM.

Jak nahrát svoje artefakty do Maven repositáře?

Artifactory je napojené na fakultní LDAP, takže každý člen akademické obce FIT ČVUT se do něj může přihlásit a nahrávat své artefakty (knihovny) do lokálních repositářů. Ačkoli to jde i přes webové rozhraní, tak velmi doporučuji artefakty nahrávat (deploy) přímo přes Maven – je to mnohem rychlejší a jednodušší. 

Aby vám deploy přes Maven fungoval, musíte mít ve své konfiguraci nastavená hesla. Pokud to ještě nemáte, přeskočte na následující sekci „Nastavení hesel pro deploy“.

Deploy vlastních artefaktů

Pokud jste pro vytvoření svého Maven projekt využili archetypy FIT a/nebo dědíte z některého rodičovského POM, tak už máte vše nastaveno a stačí jen spustit mvn deploy.

V opačném případě musíte ve svém POM nastavit repositář(e), do kterého chcete artefakt deployovat:

<project>
    ...
   <distributionManagement>
       <repository>
           <id>cvut-libs-release-local</id>
           <name>CVUT Release Repository</name>
           <url>https://repository.fit.cvut.cz/maven/libs-release-local/</url>
       </repository>

       <snapshotRepository>
           <id>cvut-libs-snapshot-local</id>
           <name>CVUT Snapshot Repository</name>
           <url>https://repository.fit.cvut.cz/maven/libs-snapshot-local/</url>
       </snapshotRepository>
   </distributionManagement>
    ...
</project>

Pozn.: ID repositáře musí sedět s ID serveru v ~/.m2/settings.xml!

Dále si do sekce build/plugins přidejte následující plugin, aby se zároveň se zkompilovaným JAR nahrály do repositáře i zabalené zdrojové kódy:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-source-plugin</artifactId>
   <version>2.2.1</version>
   <executions>
       <execution>
           <id>attach-sources</id>
           <goals>
               <goal>jar</goal>
           </goals>
       </execution>
   </executions>
</plugin>

Poté už stačí jen spustit mvn deploy.

Deploy cizích artefaktů

Pokud potřebujete nějakou cizí knihovnu, kterou jste nenašli v žádném dostupném Maven repositáři, a máte její zdrojové kódy nebo zkompilovaný JAR, můžete ji nahrát do repositáře ext-release-local, resp. ext-snapshot-local.

mvn deploy:deploy-file -DpomFile=pom.xml -Dfile=some.jar -DrepositoryId=cvut-ext-release-local -Durl=https://repository.fit.cvut.cz/maven/ext-release-local
mvn deploy:deploy-file -DpomFile=pom.xml -Dfile=some.jar -DrepositoryId=cvut-ext-snapshot-local -Durl=https://repository.fit.cvut.cz/maven/ext-snapshot-local

Vždy si poté přes webové rozhraní zkontrolujte, zda se artefakt opravdu nahrál na správné místo!

Nastavení hesel pro deploy

Hlavní heslo pro Maven

  1. Zvolte si libovolné heslo a pomocí následujícího příkazu ho zašifrujte: mvn --encrypt-master-password MASTER_PASSWORD
  2. Vytvořte soubor ~/.m2/settings-security.xml s následujícím obsahem a na určené místo vložte vaše zašifrované hlavní heslo (včetně složených závorek):
<?xml version="1.0" encoding="UTF-8"?>
<settingsSecurity>
   <master>{ENCRYPTED_MASTER_PASSWORD}</master>
</settingsSecurity>

Heslo pro deploy do fakultních repositářů

  1. Pomocí následujícího příkazu zašifrujte vaše fakultní heslo (příp. přidělené heslo, pokud nejste v LDAP): mvn --encrypt-password PASSWORD
  2. Do souboru ~/.m2/settings.xml přidejte následující sekci servers a na určená místa vložte váš školní login a zašifrované heslo (včetně složených závorek):
<settings>
    ...
   <servers>
       <server>
           <id>cvut-libs-release-local</id>
           <username>LOGIN</username>
           <password>{ENCRYPTED_PASSWORD}</password>
       </server>
       <server>
           <id>cvut-libs-snapshot-local</id>
           <username>LOGIN</username>
           <password>{ENCRYPTED_PASSWORD}</password>
       </server>
       <server>
           <id>cvut-ext-release-local</id>
           <username>LOGIN</username>
           <password>{ENCRYPTED_PASSWORD}</password>
       </server>
       <server>
           <id>cvut-ext-snapshot-local</id>
           <username>LOGIN</username>
           <password>{ENCRYPTED_PASSWORD}</password>
       </server>
   </servers>
    ...
</settings>
Tags: Maven aplikace
Created by Jakub Jirůtka on 2013-04-06, 15:41

My Recent Modifications


This wiki is licensed under a Creative Commons BY-SA 3.0 license
XWiki Enterprise 5.4.1 - Documentation