This sf.net announcement indicates that the new hostname for project web file management has changed. The new hostname for file management is: web.sourceforge.net and the new accepted methods are: SFTP, SCP, rsync over SSH. Unfortunately web.sourceforge.net also has a restricted shell environment and does not allow remote commands to be executed.
In addition shell access to shell.sourceforge.net now requires the creation of a shell before it can be accessed.
Both of these mean that if you attempt to deploy your site without following these steps you will get an error.
ssh -t <username>,<project name>@shell.sf.net create
... <distributionManagement> ... <site> <id>your_project.sf.net</id> <url>scp://shell.sourceforge.net/home/groups/y/yo/your_project/htdocs</url> </site> </distributionManagement>
The following examples will use the qifcon project and the user barrie. Substitute these with your own project name and user name.
$ ssh -t barrie,qifcon@shell.sf.net create barrie,qifcon@shell.sf.net's password: Requesting a new shell for "barrie" and waiting for it to start. queued... creating... starting... This is an interactive shell created for user barrie,qifcon. Use the "timeleft" command to see how much time remains before shutdown. Use the "shutdown" command to destroy the shell before the time limit. For path information and login help, type "sf-help". -bash-3.2$
In the project's pom.xml:
... <distributionManagement> ... <site> <id>qifcon.sf.net</id> <url>scp://shell.sourceforge.net/home/groups/q/qi/qifcon/htdocs</url> </site> </distributionManagement> ...
C:\ide\Finance\qifcon\site>mvn site:deploy [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'site'. [INFO] ------------------------------------------------------------------------ [INFO] Building QifCon [INFO] task-segment: [site:deploy] [INFO] ------------------------------------------------------------------------ [INFO] [site:deploy] Using private key: C:\Projects\putty\barrie@sourceforge-net.openssh scp://shell.sourceforge.net/home/groups/q/qi/qifcon/htdocs - Session: Opened Executing command: mkdir -p /home/groups/q/qi/qifcon/htdocs/. Executing command: mkdir -p /home/groups/q/qi/qifcon/htdocs/. Executing command: scp -t /home/groups/q/qi/qifcon/htdocs/./wagon51463.zip Uploading: ./wagon51463.zip to scp://shell.sourceforge.net/home/groups/q/qi/qifcon/htdocs ######################## Transfer finished. 95979 bytes copied in 1.812 seconds Executing command: cd /home/groups/q/qi/qifcon/htdocs/.; unzip -q -o wagon51463.zip; rm -f wagon51463.zip Executing command: chmod -Rf g+w,a+rX /home/groups/q/qi/qifcon/htdocs scp://shell.sourceforge.net/home/groups/q/qi/qifcon/htdocs - Session: Disconnecting scp://shell.sourceforge.net/home/groups/q/qi/qifcon/htdocs - Session: Disconnected [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 30 seconds [INFO] Finished at: Sat Nov 08 08:09:40 CST 2008 [INFO] Final Memory: 6M/11M [INFO] ------------------------------------------------------------------------
Open a browser to http://qifcon.sf.net.
The accepted methods for deploying to web.sourceforge.net are: SFTP, SCP, rsync over SSH.
This will mean that the zipped archive created by Wagon can be uploaded, but the commands that Wagon uses to create directories, unzip and chmod files will fail silently.
There are two types of failures:
This will occur if you are deploying into a subdirectory that does not yet exist. The cause is that the mkdir command has failed silently.
An example of this error:
C:\ide\Finance\qifcon\site>mvn site:deploy [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'site'. [INFO] ------------------------------------------------------------------------ [INFO] Building QifCon [INFO] task-segment: [site:deploy] [INFO] ------------------------------------------------------------------------ [INFO] [site:deploy] Using private key: C:\Projects\putty\barrie@sourceforge-net.openssh scp://web.sourceforge.net/home/groups/q/qi/qifcon/htdocs/site - Session: Opened Executing command: mkdir -p /home/groups/q/qi/qifcon/htdocs/site/. Executing command: mkdir -p /home/groups/q/qi/qifcon/htdocs/site/. Executing command: scp -t /home/groups/q/qi/qifcon/htdocs/site/./wagon12736.zip scp://web.sourceforge.net/home/groups/q/qi/qifcon/htdocs/site - Session: Disconnecting scp://web.sourceforge.net/home/groups/q/qi/qifcon/htdocs/site - Session: Disconnected [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error uploading site Embedded error: SCP terminated with error: 'scp: /home/groups/q/qi/qifcon/htdocs/site/./wagon12736.zip: No such file or directory' [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 15 seconds [INFO] Finished at: Sat Nov 08 07:27:34 CST 2008 [INFO] Final Memory: 6M/11M [INFO] ------------------------------------------------------------------------
If the directory exists then the Wagon zip file can be uploaded and site:deploy will appear to succeed, but the web site will not work since the Wagon zip file can not be unzipped.
C:\ide\Finance\qifcon\site>mvn site:deploy [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'site'. [INFO] ------------------------------------------------------------------------ [INFO] Building QifCon [INFO] task-segment: [site:deploy] [INFO] ------------------------------------------------------------------------ [INFO] [site:deploy] Using private key: C:\Projects\putty\barrie@sourceforge-net.openssh scp://web.sourceforge.net/home/groups/q/qi/qifcon/htdocs/site - Session: Opened Executing command: mkdir -p /home/groups/q/qi/qifcon/htdocs/site/. Executing command: mkdir -p /home/groups/q/qi/qifcon/htdocs/site/. Executing command: scp -t /home/groups/q/qi/qifcon/htdocs/site/./wagon21889.zip Uploading: ./wagon21889.zip to scp://web.sourceforge.net/home/groups/q/qi/qifcon/htdocs/site ######################## Transfer finished. 95979 bytes copied in 1.872 seconds Executing command: cd /home/groups/q/qi/qifcon/htdocs/site/.; unzip -q -o wagon21889.zip; rm -f wagon21889.zip Executing command: chmod -Rf g+w,a+rX /home/groups/q/qi/qifcon/htdocs/site scp://web.sourceforge.net/home/groups/q/qi/qifcon/htdocs/site - Session: Disconnecting scp://web.sourceforge.net/home/groups/q/qi/qifcon/htdocs/site - Session: Disconnected [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 18 seconds [INFO] Finished at: Sat Nov 08 07:51:04 CST 2008 [INFO] Final Memory: 6M/11M [INFO] ------------------------------------------------------------------------
If you try to run ssh without first creating a shell you will get the following error:
$ ssh barrie,qifcon@shell.sf.net barrie,qifcon@shell.sf.net's password: Logging in to your interactive shell... You don't have an active shell at this time. For basic file transfers and management, use web.sourceforge.net -- it allows rsync, sftp, and scp access. If you would like to create a shell, use ssh to login using a USER,PROJECT username with the "create" command. If you tell ssh to allocate a tty (e.g. using -t), an interactive shell will be opened when the create is done. Otherwise, the create command will exit when the shell becomes ready for use. An example create that enters the shell when ready: ssh -t USER,PROJECT@shell.sourceforge.net create Connection to shell.sf.net closed.