Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

Deprecated: This plugin has been removed from the Jenkins Update Centre

The Publish Over CIFS Plugin has replaced this plugin.
Archived versions of this plugin remain available for download.

Plugin Information

No information for the plugin 'cifs' is available. It may have been removed from distribution.

This plugin uploads build artifacts to repository sites using CIFS (SMB) protocol. First you should define CIFS shares in the Hudson global configuration page. After that you can refer to the shares using a select list in your project configuration. See picture for global config:

The CIFS share must exist before you can reference it and should be accessible by user who is publishing the files.

Per job you can enable publishing of build artifacts:

Source points to files which will be uploaded. You can use ant includes syntax, eg. folder/dist/*.jar. Path is constructed from workspace root.
Note that you cannot point files outside the workspace directory. For example providing: ../myfile.txt won't work...
Destination points to destination folder on remote site. It will be created if doesn't exists and relative to share root path.
You can define multiple blocks of source/destination pairs.

Change Log

Version 1.1.10
  • Incorporated patch for allowing flattening of directory structure per job and per file mask.
  • Moved plugin to GitHub
Version 1.1.4
  • Fixed issue with winsServer parameter
  • Fixed issue with share directory not being used when the artifact is actually copied to the share
Version 1.1
  • Fixed a few items in the pom so they showed up correctly on the wiki
Version 1.0
  • Initial release of plugin.


  1. Unknown User (isxylands@gmail.com)

    Great work!

    but i can not find it in my hudson pluginManager available list. How can i install it?

    1. Unknown User (slide.o.mix@gmail.com)

      I'll take a look into the issue, thanks for bringing it to my attention, I had only installed from HPI for my testing.

      1. Unknown User (slide.o.mix@gmail.com)

        Previously, it looks like the CIFS plugin somehow got mixed up with the CVS plugin on the JSON page. It looks like it is fixed now and the CIFS plugin is available.

        1. Unknown User (isxylands@gmail.com)

          It's available. thank u(smile)

  2. Unknown User (andrei.pozolotin@gmail.com)



    I am trying to publish from fedora 10 to windows 2003;

    do I need to install any extra dependencies on linux?

    I am getting the exception below;

    thank you




    Failed to parse form data. Please report this problem as a bug

    net.sf.json.JSONException: JSONObject"winsServer" not found.
    at net.sf.json.JSONObject.getString(JSONObject.java:1789)
    at com.slide.hudson.plugins.CIFSPublisher$DescriptorImpl.newInstance(CIFSPublisher.java:233)
    at com.slide.hudson.plugins.CIFSPublisher$DescriptorImpl.newInstance(CIFSPublisher.java:175)
    at hudson.util.DescribableList.rebuild(DescribableList.java:147)
    at hudson.maven.MavenModuleSet.submit(MavenModuleSet.java:719)
    at hudson.model.Job.doConfigSubmit(Job.java:1086)
    at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:555)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:259)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:126)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:65)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:79)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:534)
    at org.kohsuke.stapler.MetaClass$7.doDispatch(MetaClass.java:219)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:534)
    at org.kohsuke.stapler.MetaClass$7.doDispatch(MetaClass.java:219)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:534)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:450)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:132)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:636)

    1. Unknown User (slide.o.mix@gmail.com)

      I'll take a look into this, I think I saw a similar issue with the most recent version of Hudson and the CIFS plugin. Could you open a sighting in JIRA please?

  3. Unknown User (andrei.pozolotin@gmail.com)

    Slide, hello;

    thank you very much for looking into this;



    (could not find jira component "cifs" - filed under "plugin")



  4. Unknown User (andrei.pozolotin@gmail.com)

    Slide, thank you for fixing this; you are the best!


  5. Unknown User (andrei.pozolotin@gmail.com)

    To users of CIFS plugin:

    if you get this:

    ERROR: Failed to upload files
    jcifs.smb.SmbException: The network name cannot be found.

    this can mean the following:

    • host not found
    • share not found
    • host/share access denied
    • invalid path specified in "Destination"

    specifically, if you try to use "/" in the "Destination" and hope that it would copy to the share root - it will not work;

    workaround: create a share above your destination folder;

  6. Unknown User (andrei.pozolotin@gmail.com)


    currently, if you have on source:


    and you specify:

    source: "dir1/**"
    destination "dir"

    then all contents of all folders on the source "dir1/dir2/dir3" will be flattened (merge+overwrite) inside destination "dir";

    how can you copy and preserve directory tree?

  7. Unknown User (lrkwz)

    I'm facing this error

    Connecting to
    Preparing to copy directory : /e:/hudson/workspace/xxxx/
    ERROR: Failed to upload files
    jcifs.smb.SmbException: Failed to connect:<00>/
    jcifs.util.transport.TransportException: Connection timeout

    the job is executed on a windows slave in the same network of the target while the master if on a different network with a firewall in the middle (Master on public network, slaves within firewall).

    I can manually use shares from the slave.

    How can I diagnose the problem?
    Thsnk you.

    1. Unknown User (slide.o.mix@gmail.com)

      Is Samba running on a different port on by chance?

  8. Unknown User (jep)

    I'm stuck with this problem:
    The upload works but is EXTREMELY slow. When I look in the /var/log/jenkins/jenkins.log I get a load of these exceptions

    java.net.ConnectException: Connection timed out

    at java.net.PlainSocketImpl.socketConnect(Native Method)

    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)

    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)

    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)

    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)

    at java.net.Socket.connect(Socket.java:529)

    at java.net.Socket.connect(Socket.java:478)

    at java.net.Socket.<init>(Socket.java:375)

    at java.net.Socket.<init>(Socket.java:189)

    at jcifs.smb.SmbTransport.ssn139(SmbTransport.java:185)

    at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:247)

    at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:312)

    at jcifs.util.transport.Transport.run(Transport.java:232)

    at java.lang.Thread.run(Thread.java:662)

    Any idea?

    1. Unknown User (slide_o_mix)

      Is there any information when it is successful? Does the build fail when you see the above?

      1. Unknown User (jep)

        No, I don't think the build fails because I see this in the log:

        INFO: Blaconverter #55 main build action completed: SUCCESS

        But then comes the connection time out exceptions. 

        I havn't waited for it to complete because it takes to long. 

        1. Unknown User (slide_o_mix)

          Does the build complete ALL the way, or does it sit in this state?

          1. Unknown User (jep)

            It sits in that state.

            1. Unknown User (slide_o_mix)

              Can you verify that you can connect to the share from that machine with the same configuration information?

              1. Unknown User (jep)

                I can connect with: 

                smbclient  //<my-server-ip>/<my-share> -W <my-domain>

  9. Unknown User (shadowcat)

    Is it possible to make the CIFS publication available as a build step?
    Like how Publish Over SSH Plugin does?

    It is very important feathure for me.

    Thank You.

    1. Unknown User (slide_o_mix)

      Can you file a ticket in JIRA?

      1. Unknown User (shadowcat)