[Java][Maven] Własne repozytorium mavenowe.

Aby móc udostępniać innym swoje biblioteki w mavenie lub trzymać swoje prywatne repozytorium, możemy wykorzystać do tego celu konto ftp.
W tym celu możemy wykorzystać jakiś hosting, własny komputer albo dowolny w sieci lokalnej.



Konfiguracja polega na tym że w projekcie mavenowym który chcemy dystrybuować do naszego repozytorium dodajemy poniższą konfigurację:

    <distributionManagement>
        <repository>
            <id>nazwa-naszego-repozytorium</id>
            <url>ftp://nasz-adres-serwera</url>
        </repository>
    </distributionManagement>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ftp</artifactId>
                <version>2.1</version>
            </extension>
        </extensions> 
    </build> 

Korzystamy tutaj z pluginu wagon-ftp, który umożliwia nam deployowanie naszej aplikacji na serwer.
Teraz wystarczy skonfigurować odpowiednio luncher mavenowy np tak:



clean javadoc:jar source:jar deploy


Często oprócz samego wysyłania jar`a na serwer potrzebować będziemy wysłać także jego sources lub doc. Jeśli tego nie potrzebujemy możemy usunąć z powyższego zapisu javadoc:jar lub source:jar.

Kolejnym krokiem jest skonfigurowanie danych dostępowych do naszego mavenowego repozytorium. Robimy to w katalogu mavena w pliku settings. Na windows domyślny path to:

C:\Users\<User>\.m2

Edytujemy plik według tego schematu:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <localRepository/>
      <interactiveMode/>
      <usePluginRegistry/>
      <offline/>
      <pluginGroups/>
       <servers>
                <server>
                        <id>nazwa-naszego-repozytorium</id>
                        <username>uzytkownik-ftp</username>
                        <password>haslo-do-ftp</password>
                </server>              
        </servers>
      <mirrors/>
      <proxies/>
      <profiles/>
      <activeProfiles/>
    </settings>

Czyli w sekcji pluginGroups, dodajemy servers i podajemy dane do logowania do naszego serwera ftp oraz id repozytorium po którym nasz plugin wagon rozpozna serwer i zaloguje się do niego.