
Apache Maven copy local file to a remote server server using SSH

I will show you in an Apache #Maven configuration file how to copy files to server each time the package phase is executed.
Solution with Ant SCP task
This snippet of code is a ready to use code that make use of Apache Ant task scp, Just put this snippet of code in your #Maven module where the assembly is executed or anywhere else to push all tar.gz files to a server just run a #maven mvn package, you can add as many ant task and push to many server the same file during the reactor build.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <execution> <id>server-copy</id> <goals> <goal>run</goal> </goals> <phase>package</phase> <configuration> <target> <echo message="Push to server/home/"/> <scp trust="yes" todir="user:[email protected]:/home/"> <fileset dir="${basedir}/target"> <include name="**/*.tar.gz"/> </fileset> </scp> </target> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant-jsch</artifactId> <version>1.8.2</version> </dependency> </dependencies> </plugin>
Solution with #maven-deploy-plugin
The #maven-deploy-plugin allows you to configure the deploy phase to deploy to a server using scp. There is a page in the documentation that describes how it can be done.
Deploy #maven artifact using Maven Wagon SCP
Another alternative would be to use Maven Wagon SCP like described in this post for example