Wagonem do ftpa…
Kilka miesięcy temu zadałem pytanie na blogu Pawła Stawickiego o upload artefaktów mavena za pomocą ftp. Było to przy okazji wpisu o uploadzie do repozytorium. Paweł nawiązał do wpisu Leszka Gruchały na temat Nexus’a. Na początek co to jest Nexus. Jest to soft do zarządzania repozytorium mavena. Działa na prostej zasadzie: ściągnąć, odpalić, zapomnieć. Szczegóły u Leszka na blogu. Problem polega na tym, że musimy mieć kompa z Javą. W naszych warunkach jest to co najmniej problematyczne. Nie mam serwera z Javą, nie mam kasy na taki serwer i nie mam ochoty użerać się z kolejnym providerem lub rachunkami za prąd. Mam za to konto na lua. Zwykłe konto www z dostępem przez ftp. Miejsca mam dość, bo około 500MB przy maks 25MB plikach. Nie powinno być zatem problemu z hostowaniem sobie repozytorium. Wystarczy tylko skonfigurować mavena. Potrzeba będzie zrobić cztery rzeczy:
- Dodać dane konta ftp do pliku settings.xml.
- Skonfigurować Distribution Managera.
- Skonfigurować rozszerzenie maven-wagon
- Skonfigurować maven-deploy-plugin.
Czyli lecimy.
1. dodanie serwera w pliku settings.xml
Otwieramy plik settings.xml i odnajdujemy node <servers> i dodajemy mu:
Listing 1. Wpis w settings.xml
<server>
<id>MyRepo</id>
<username>username</username>
<password>password</password>
</server>
2. Konfiguracja Distribution Managera
W pliku pom.xml dodajemy:
Listing 2. pom.xml – konfiguracja Distribution Managera
<distributionManagement>
<repository>
<id>MyRepo</id>
<url>ftp://username@server.path.com</url>
</repository>
</distributionManagement>
3. Konfiguracja maven-wagon
Dalej pracujemy z pom.xml. Tym razem dodajemy rozszerzenie (extension):
Listing 3. pom.xml – konfiguracja maven-wagon
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>1.0-alpha-6</version>
</extension>
</extensions>
</build>
4. Konfiguracja maven-deploy-plugin
Tu moje rozwiązanie różni się od zaproponowanego przez Pawła (nie Stawickiego). Podał on prostą konfigurację i odesłał do klepania w konsoli. Ja proponuję zaszycie tych danych w pom.xml i uniknięcie pomyłek związanych z klepaniem w linii poleceń:
Listing 3. pom.xml – konfiguracja maven-deploy-plugin
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>1.0</version>
<generatePom>true</generatePom>
<file>target/Example-1.0-SNAPSHOT.jar</file>
<packaging>jar</packaging>
<url>ftp://username@server.path.com/repo</url>
<repositoryId>MyRepo</repositoryId>
</configuration>
</plugin>
</plugins>
</build>
Odpalamy:
>mvn deploy:deploy-file
I gotowe 🙂