Stephen, i just typed faster then you in 2 seconds :-) On Mon, Nov 9, 2009 at 12:59 AM, Stephen Connolly <stephen.alan.conno...@gmail.com> wrote: > It is not that difficult to write your own maven plugin to achieve this. > > You'll probably want to depend on JSch. > > File transfer via SCP/SFTP is easy with JSch, and then you can execute > the "make" command to re-index the repository... although you probably > would prefer to skip the "make" and instead invoke "createrepo" > directly... > > -Stephen > > P.S. > You'll probably need something like the following dependencies: > <dependency> > <groupId>org.apache.maven</groupId> > <artifactId>maven-project</artifactId> > <version>2.0.6</version> > </dependency> > > <dependency> > <groupId>org.apache.maven</groupId> > <artifactId>maven-plugin-api</artifactId> > <version>2.0.6</version> > </dependency> > > <dependency> > <groupId>org.codehaus.plexus</groupId> > <artifactId>plexus-utils</artifactId> > <version>1.5.1</version> > </dependency> > > <dependency> > <groupId>com.jcraft</groupId> > <artifactId>jsch</artifactId> > <version>0.1.42</version> > </dependency> > > As well as these two functions (or equivalent): > > /* > * Licensed to the Apache Software Foundation (ASF) under one > * or more contributor license agreements. See the NOTICE file > * distributed with this work for additional information > * regarding copyright ownership. The ASF licenses this file > * to you under the Apache License, Version 2.0 (the > * "License"); you may not use this file except in compliance > * with the License. You may obtain a copy of the License at > * > * http://www.apache.org/licenses/LICENSE-2.0 > * > * Unless required by applicable law or agreed to in writing, > * software distributed under the License is distributed on an > * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > * KIND, either express or implied. See the License for the > * specific language governing permissions and limitations > * under the License. > */ > import com.jcraft.jsch.ChannelExec; > import com.jcraft.jsch.ChannelSftp; > import com.jcraft.jsch.JSchException; > import com.jcraft.jsch.Session; > import com.jcraft.jsch.SftpException; > import org.apache.maven.plugin.logging.Log; > import org.codehaus.plexus.util.IOUtil; > import org.codehaus.plexus.util.StringUtils; > > public static void put( Session session, File source, String > destination, int mode, final Log log ) > throws JSchException, SftpException > { > ChannelSftp channel = null; > try > { > channel = (ChannelSftp) session.openChannel( "sftp" ); > channel.connect(); > log.info( "Uploading " + source + " to sftp://" + > session.getUserName() + "@" + session.getHost() + ":" > + session.getPort() + destination ); > channel.put( source.getAbsolutePath(), destination, mode ); > channel.quit(); > } > finally > { > if ( channel != null ) > { > channel.disconnect(); > } > } > } > > public static void createrepo( Session session, String workingDir ) > throws JSchException, IOException, InterruptedException > { > GobblingInputStream stdout = null; > GobblingInputStream stderr = null; > ChannelExec channel = null; > try > { > channel = (ChannelExec) session.openChannel( "exec" ); > channel.setCommand( "ch " + workingDir + " && createrepo" ); > stdout = new GobblingInputStream( channel.getInputStream() ); > stderr = new GobblingInputStream( channel.getErrStream() ); > channel.setInputStream( null ); > channel.connect(); > stdout.awaitClosed(); > stderr.awaitClosed(); > while ( !channel.isClosed() ) > { > Thread.sleep( 50 ); > } > if ( channel.getExitStatus() != 0 ) > { > throw new IOException( > "Could not update yum repository > metadata\nSTDOUT:\n" + IOUtil.toString( stdout ) + "\nSTDERR:\n" > + IOUtil.toString( stderr ) + "\nEXIT-CODE:" + > channel.getExitStatus() ); > } > } > finally > { > if ( channel != null ) > { > channel.disconnect(); > } > IOUtil.close( stdout ); > IOUtil.close( stderr ); > } > } > > When you're done, give it back to the community, e.g. donate your > plugin to mojo or some other maven plugin project hosting > > 2009/11/6 eyal edri <eyal.e...@gmail.com>: >> Hi guys, >> >> i'm just starting to play around with maven as a candidate for our whole >> build/deploy system for java applications. >> >> we're been programming so far using Perl, packaging with Rpm on Fedora and >> Deploying it though a local yum repository. >> >> >> We still haven't decided if we could ditch the yum/rpm idea all together and >> swith to mvn repository, >> but in case we won't, >> >> Do you know* i**f there is a way to config mvn to upload the rpm (using >> SCP?) to the yum repository* after >> it finished building the RPM (today we use a build system based on make >> files and in the end it scp's the rpm to the repository and run make there >> to update the list of rpms). >> >> thank you. >> >> -- >> Eyal Edri >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > For additional commands, e-mail: users-h...@maven.apache.org > >
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org