2009-10-13 5 views
2

I ont un projet divisé en plusieurs sous-modules (chacun d'entre eux sont jar bibliothèques):déploiement d'un ensemble à un serveur FTP en utilisant Maven 2

myapp 
    myapp-commons 
    myapp-client 
    myapp-server 

j'ai configuré mon pom.xml afin de créer 3 (assemblées client.zip, oracle.tar.gz et server.tar.gz) qui sont finalement stockés dans le répertoire myapp/target. Je veux maintenant est de distribuer deux d'entre eux (oracle.tar.gz et server.tar.gz) à un serveur en utilisant FTP.

Même si je n'ai pas encore essayé, je sais que je peux le faire assez facilement en utilisant quelques lignes de Ant dans mon pom.xml, mais je n'aime pas vraiment cette option (je résoudrai mon problème avec Ant seulement il n'y a pas d'autre solution). Il y a quelques questions SO (here ou here) qui offrent des solutions pour cela.

Ma question est de savoir s'il y a une meilleure façon de le faire? Je connais le plugin Wagon Maven2 mais je n'ai pas réussi à le configurer afin de déployer les assemblages (et pas le créé par le JAR).

Répondre

2

Comme vous le dites dans votre question, l'approche Ant n'est pas idéale, mais si vous ne trouvez pas d'alternative, this answer montre comment utiliser le plugin antrun pour le déployer avec FTP. Le

mise à jour, en fonction de votre question mis à jour cette partie est moins pertinente, je vais le laisser pour aider les autres si.

Le wagon-ftp plugin vous permet de vous connecter aux serveurs FTP. Je n'ai pas essayé ceci, mais vous pouvez alors lier le deploy-file goal du plugin de déploiement à une phase appropriée pour livrer les fichiers au serveur FTP (quelques conseils sur l'utilisation au this blog).

+0

+1 pour wagon-ftp. –

+0

Désolé, j'ai dit "cargo" dans ma question, mais je voulais dire "wagon" en fait; o) – romaintaz

2

La façon de déployer des artefacts via FTP est décrite dans Deployment of artifacts with FTP:

Afin de déployer des artefacts via FTP vous devez d'abord spécifier l'utilisation d'un serveur FTP dans l'élément distributionManagement de votre POM ainsi que de spécifier une extension dans votre élément de construction qui va tirer dans les artefacts FTP nécessaires pour déployer avec FTP:

... 

    <!-- Enabling the use of FTP --> 
    <distributionManagement> 
    <repository> 
    <id>ftp-repository</id> 
    <url>ftp://repository.mycompany.com/repository</url> 
    </repository> 
    </distributionManagement> 

    <build> 
    <extensions> 
     <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-ftp</artifactId> 
     <version>1.0-alpha-6</version> 
     </extension> 
    </extensions> 
    </build> 

Votre settings.xml contiendrait un élément server où le id de cet élément correspond id du référentiel FTP spécifié dans le POM ci-dessus:

<settings> 

    ... 

    <servers> 
    <server> 
     <id>ftp-repository</id> 
     <username>user</username> 
     <password>pass</password> 
    </server> 

    </servers> 

    ... 

</settings> 

Maintenant, je crois comprendre que vous souhaitez utiliser ces paramètres pour un sous-ensemble des assemblages produits uniquement. Pour ce faire, je créerais un module dédié pour produire les assemblages à distribuer en utilisant FTP et outrepasser l'élément distributionManagement avec la configuration FTP dans ce module uniquement.

Questions connexes