And that snippet is all I can copy and paste under OS license ;-) 2009/11/9 Stephen Connolly <stephen.alan.conno...@gmail.com>: > In case you hadn't guessed, I have code for similar ... though it's > not deploying rpms to an rpm repository, rather deploying a custom > deployable to a propriatory server ;-) > > 2009/11/9 Dan Tran <dant...@gmail.com>: >> 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 >> >> >
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org