##### Child pages
• ArtifactDeployer Plugin

## and how to migrate your plugin documentation in this blogpost

Go to start of banner

# ArtifactDeployer Plugin

Plugin Information

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

This plugin makes it possible to copy artifacts to remote locations.

# History and Objectives

By default, Jenkins archives artifacts generated by the build. These artifacts are stored in the JENKINS_HOME directory with all other elements such as job configuration files.
There is no separation between infrastructure elements, project elements and outputs.
It is often considered to be a bad practice and it doesn't help to manage JENKINS_HOME directory from an administrator point of view (backup issues, etc).
And for now, we can't change the 'Archived artifacts' location.

ArtifactDeployer plugin enables you to archive build artifacts to any remote locations such as to a separate file server (outside of JENKINS_HOME directory).

There are many other Jenkins plugins close to ArtifactDeployer such as CopyArtifact plugin or CopyArchiver plugin for publishing artifacts from Jenkins resources (from the current workspace, from the old builds of the same job or other jobs, ...) to remote locations with the protocol file://
There are also others plugins for managing other protocols such as ftp://, ssh:///.

But none of these plugins provides a common way to manage the deployment.

ArtifactDeployer is a complete alternative to the built-in Jenkins feature "Archiving artefacts' and it is aimed at providing an uniform deployment mechanism.

# Features

• Copies build artifacts from the workspace to a remote location shared on the build processor node
• Provides links to archived artefacts from the job status page
• Deletes on demand archived artifacts when the build is removed

# Limitations

• Only file deployment is supported
• Jenkins process must have the right permissions to write in the specified location

# Changelog

## Release 1.2

* Fix SECURITY-294 - Rips out the ability to execute a Groovy script with this plugin

## Release 0.33

* Fix deployed item ID when there is multiple ArtifactDeployer step

## Release 0.32

* Fix JENKINS-24140 - ArtifactDeployer migration breaks lazy-load on Jenkins initialization

## Release 0.31

* Fix JENKINS-16130 - Provide folder links on build results page to condense long file paths
* Fix JENKINS-14681 - Constrain the list of artifacts deployed

## Release 0.30

* Fix typo in help file.

## Release 0.28

* Fix JENKINS-18135 - Conditional Build Step plugin crashes when using Artifact Deployer plugin as build step

## Release 0.27

* Fix NullPointterException

## Release 0.26

* Fix JENKINS-16031 - Lost deployed artifacts after restart

## Release 0.25

* Fix JENKINS-15709 - ArtifactDeployer does not appear in Flexible Publish

## Release 0.24

* Fix JENKINS-15354 - Add option to fail the build if specified "Files to deploy" do not exist

## Release 0.23

* Fix JENKINS-15059 - recursive deletion of deployment pathes not working correctly

## Release 0.22

* Fix JENKINS-15058 - Setting for GroovyScript is not permanent

## Release 0.21

* Fix JENKINS-14547 - Null pointer exception when using groovy script

## Release 0.20

* Fix JENKINS-14548 - help for groovy script usage is never displayed

## Release 0.19

* Fix JENKINS-13841 - "Base folder" for deploying the artifacty from source folder to remote directory

## Release 0.18

* Fix JENKINS-13937 - ArtifactDeployer 0.16 messes the filenames for Windows filesystems

## Release 0.17

* Fix NullPointerException on artifact deletion

## Release 0.16

* Fix JENKINS-12311 - Display the Deployed Artifacts in a tree structure similar to how they are displayed under the Build Artifacts section

## Release 0.15

* Fix JENKINS-11867 - Deployed files have a different time with original files.

## Release 0.14

* Fix JENKINS-12522 - Deploy artifacts for failed builds, too

## Release 0.13

* Fix JENKINS-11640 - Can't copy on remote windows slave

## Release 0.12

* Fix partially JENKINS-9996 - Have the possibility to change the user and group ACL's on artifacts (Conserve file permissions to copy).

## Release 0.11

* Fixed NullPointerException when the remote directory value is not set (for the ArtifactDeployer publisher and for the ArtifactDeployer builder).

## Release 0.10

* Make it compatible to LTS series (1.409.x)
* Complete fix JENKINS-10360 - Added support of Matrix project

## Release 0.9

* Fix partially JENKINS-10360 - Added support of Maven project

## Release 0.8

* Fix slave execution

## Release 0.7

* Fix bug on deletion
* The deployed artifacts in the Jenkins dashboard are now sorted.

## Release 0.6

* Fix a ClassCastException (for more than one entry) on save configuration

## Release 0.5

* Integrated a pull request - Fixed a NullPointerException

## Release 0.4

* Add 'deployment artifacts' as a a build step (builder item) in addition to publishers.
Use Case: In the same job as build steps: Build your artifacts, deploy them in remote locations (as servers) and launch the integration tests.

## Release 0.3

* Add a checkbox for deleting remote artifacts when the build is deleted.

## Release 0.2

* The plugins enables users to call a Groovy script when the builds are deleted (for manual and automatic deletion).

## Release 0.1

* Initial release
Only the filesystem protocol is available

1. I am getting the following error when I run this on a node and deploy to the same node.

Node = qa-w7p06

Files to deploy = **

Remote Directory = \\qa-w7p06\e\Workspace

I do not receive any error when I deploy to jenkins master and a folder on the master machine.14:31:44 At revision 436

14:31:44 WARNING: clock of the subversion server appears to be out of sync. This can result in inconsistent check out behavior.
14:31:44 ArtifactDeployer - Starting deployment...
14:31:44 FATAL: remote file operation failed: e:\Jenkins\workspace\Subversion qa-w7p06 at hudson.remoting.Channel@35da365c:qa-w7p06
14:31:44 hudson.util.IOException2: remote file operation failed: e:\Jenkins\workspace\Subversion qa-w7p06 at hudson.remoting.Channel@35da365c:qa-w7p06
14:31:44 at hudson.FilePath.act(FilePath.java:754)
14:31:44 at hudson.FilePath.act(FilePath.java:740)
14:31:44 at org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerBuilder.processDeployment(ArtifactDeployerBuilder.java:87)
14:31:44 at org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerBuilder.perform(ArtifactDeployerBuilder.java:47)
14:31:44 at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19) 14:31:44 at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:682)
14:31:44 at hudson.model.Build$RunnerImpl.build(Build.java:178) 14:31:44 at hudson.model.Build$RunnerImpl.doRun(Build.java:139)
14:31:44 at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:448) 14:31:44 at hudson.model.Run.run(Run.java:1376) 14:31:44 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 14:31:44 at hudson.model.ResourceController.execute(ResourceController.java:88) 14:31:44 at hudson.model.Executor.run(Executor.java:230) 14:31:44 Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@7993c1cd
14:31:44 at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
14:31:44 at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
14:31:44 at hudson.remoting.Channel.call(Channel.java:667)
14:31:44 at hudson.FilePath.act(FilePath.java:747)
14:31:44 ... 12 more
14:31:44 Caused by: java.io.NotSerializableException: org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerBuilder
14:31:44 at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
14:31:44 at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
14:31:44 at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
14:31:44 at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
14:31:44 at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
14:31:44 at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
14:31:44 at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
14:31:44 at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
14:31:44 at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
14:31:44 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
14:31:44 at hudson.remoting.UserRequest._serialize(UserRequest.java:155)
14:31:44 at hudson.remoting.UserRequest.serialize(UserRequest.java:164)
14:31:44 ... 15 more

1. Fixed in version 0.8

2. Here is another example.

It copies fine to hqapp03 (this is the master jenkins node).

I get error trying to copy to qa-w7p06.

15:15:08 A trunk\Suite\eCounsel\NEED TO FIX\SuiteTest_init_.txt

15:15:08 A trunk\Suite\eCounsel\NEED TO FIX\Resources
15:15:08 A trunk\Suite\eCounsel\NEED TO FIX\Resources\eCounselObjectLib.TXT
15:15:08 A trunk\Suite\eCounsel\NEED TO FIX\test1.txt
15:15:08 A branches
15:15:08 At revision 441

15:15:08 ArtifactDeployer - Starting deployment...

15:15:23 ArtifactDeployer - 189 file(s) have been copied from the workspace to '\\hqapp03\e$\Workspace'. 15:15:23 ArtifactDeployer - Stopping deployment... 15:15:23 ArtifactDeployer - Starting deployment... 15:15:23 ArtifactDeployer - Failed to deploy Can't create the directory '\\qa-w7p06\e$\Workspace'
15:15:23 Build step 'Deploy artifacts from workspace to remote directories' changed build result to FAILURE
15:15:23 Build step 'Deploy artifacts from workspace to remote directories' marked build as failure
15:15:24 Finished: FAILURE

1. Try the version 0.8.
If the problem still occurs, please could raise an issue.

3. Hi,

Silly question, but I can't find the obvious answer:

I've specified the following:

Files to deploy distribution/target/distribution-0.0.1-SNAPSHOT-bin/cdInstallation/**

Remote directory \\some-server\Staging\some-directory\CD-Installation-$BUILD_ID Which works great, however, in my remote directory, I have to complete path specified in files to deploy. I really want ** to be in the root of CD-Installation-$BUILD_ID and not nested 4 directories down.
Any easy solution for this?

Secondly, what is the best practice using Jenkins to cull these folders so that there are at most 3 copied folders?  i.e. the older folder is removed (I realize this is probably outside the scope of the ArtifactDeployer Plugin).

Thanks!

1. Avoiding nested directories can be done by checking flatten option in the advanced section.
Additionally, there is an option to delete remote parent directory before a deployment.

1. Thanks for the response.  Two observations:

1. Flatten option does remove the extraneous folders, however it does also do exactly what the tool tip says, it essentially puts all artifacts in that root folder.  I'm looking for the first without the second.

2. The clean-up remote directory before deployment option doesn't appear to fit the bill here since I'm using $BUILD_ID as part of the remote directory path. It seems to me that I would have to make my "Files to deploy" path vary in order for this option to work. This is weird I guess because I shouldn't have to modify my maven assembly descriptor for a varying remote copy path. Thanks. 1. I agree, it would be useful if we could map the directory structure of the archived files to a different structure in the deployed location. It would be nice if we could just specify the base directory from where to copy, rather than always copying from the root of the workspace 4. Is this plugin able to upload files over http? 1. Not yet, this feature is in the roadmap. 5. Does the plugin support copying artifacts after a failed build? My Jenkins job has the following build steps: 1. Execute Windows batch command (a set of simple commands terminated by an 'exit X' statement, where X can be zero for successful builds and non-zero for failed builds) 2. Deploy artifacts from workspace to remote directories If the exit statement at the end of my batch commands is non-zero then the artifacts are NOT deployed. I would like to be able to deploy artifacts following a failed build because although the build failed there will be build log files indicating the reason for failure as well as partial artifacts. Thanks. 1. Thanks for your request. Could you create an enhancement in the Jenkins issue tracker for the component 'artifactdeployer'? 6. It would be really useful to have a way to chop off some "root" dir levels from the path getting copied. I'll explain: our build assembles an image of the the installation files&dirs and puts them in a subdir of the artifacts called publish. All dir levels leading to it are "workspace stuff" and should not be deployed. Example: Files to deploy: path/to/publish/**/* Remote directory: \\UNC\PATH\TO\DISTRIBUTION\DIR At the moment, if publish contains some/dir, the above will create \\UNC\PATH\TO\DISTRIBUTION\DIR\path\to\publish\some\dir Whereas I'd need \\UNC\PATH\TO\DISTRIBUTION\DIR\some\dir i.e. contents of publish copied into \\UNC\PATH\TO\DISTRIBUTION\DIR, while preserving the structure below publish. 0.13 does not support this, right? 1. Do you have activated the flatten option in advanced section? 2. +1 3. I have similar issue, but could not solve it. I have all the artifacts in a directory Output. I need to copy only the subdirectories under Output but not the Output directory. source = Output/xy/.* and in destination /xyz/.* But if give the option files to archive as , Output//* it also copies the Output directory. How can I only copy everything under Output but not Output directory? 7. It looks like the deployed artifacts are always presented in a flattened format on the Jenkins job/build page. Is this as-designed or a bug ? I'd like to see them in a tree structure (similar to the normal Build Artifacts section). As you can see in the screenshot, I have two files with the same name, but only one shows under Deployed Artifacts. Thanks, Chris 1. Thanks for your feedback. It is the current behavior. Please your raise an enhancement in the Jenkins issue tracker? 8. I've just started using Jenkins along with this plugin. I can successfully build a test application and use the built-in archiving, but when I try to use the ArtifactDeployer, I get the following error. Archiving artifacts [ArtifactDeployer] - Starting deployment from the post-action ... [ArtifactDeployer] - [ERROR] - Failed to deploy. Can't create the directory '\\aries\Engineering\Functional\Software\Users\DanO\Test01' [ArtifactDeployer] - [ERROR] - Failed to mkdirs: \\aries\Engineering\Functional\Software\Users\DanO\Test01 Build step '[ArtifactDeployer] - Deploy artifacts from workspace to remote directories' changed build result to FAILURE Build step '[ArtifactDeployer] - Deploy artifacts from workspace to remote directories' marked build as failure I am able to successfully manually execute mkdir from the Jenkins server as follows: C:\.jenkins\jobs\TestBuild01\workspace>mkdir \\aries\Engineering\Functional\Software\Users\DanO\Test01 I tried mapping to a drive letter, but that didn't help. It was able to get it to work when I used a local directory (C:\Test01), but of course that defeats the purpose. Any ideas? Thanks. 1. Is Jenkins running as a different user account than you are logged on with ? 1. I'm not sure. I'm trying to figure that out right now. Jenkins is running in Tomcat. I installed both Tomcat and Jenkins while logged into the server as myself. Maybe I need to look at the Tomcat account permissions? (I don't remember the details of how I configured that.) 9. It should be clarified which protocols are supported (SMB? SSH? FTP? SFTP?...). The plugin help should tell that along with an example. Additionally it would be great for the plugin to check write access during the job configuration. 1. At the moment, only file protocol is supported. Regarding the write access check, please give me more information. 10. Hi, I installed the plugin. I click on Add button but nothing happens. I tried different browsers. What am I doing wrong ? Thanks 1. Strange behavior. Do you have installed the last version? 1. Yes I think I have the latest version installed, 0.19 ? But I was able to add it from'Build Step' instead of 'Post Build Action' . Then once added from 'Build Step', I can then add it from 'Post Build Action' . Surprising. But it is working now. Thanks 1. I experienced exactly the same behavior. Strange. 1. I am experiencing a similar problem with Jenkins 1.475 and ArtifactDeployer plugin 0.19. I click on 'Add' button and nothing happens. This is from 'Post Build Action'. I don't see an option to add this from 'Build Step'. Also, I am adding this to a multi-configuration job. Am I missing something here ? Thanks 1. The last version of ArtifactDeployer was built for Jenkins 1.424 and all is fine. I tested with Jenkins 1.475 and you're right, you can't add new elements from post-actions for ArtifactDeployer plugin. I will investigate on this issue. 2. I tested with the latest LTS (Long Time Support) 1.466.1 and the plugin still works. Therefore it is an issue wthin a recent version of Jenkins. I don't know for now the real problem. Waiting for more investigation and a solution, I strongly suggest you should use a "stable" version of Jenkins: LTS 11. Hello, I wanted to ask if i can (or how could i) execute a custom task after the archiving of artifacts (cleaning up the workspace) Thank you 1. You are able to use the ArtifactDeployer as a post action, but also as a build step. Combining the two possibilities is also possible. For your use case, using Artifactdeployer as a build step is the best solution. Then, you are able to execute a custom step (from a shell script/batch file or from other steps provided by plugins) 2. Does it suit you? 12. I have master and slave nodes on two different machines. Build goes on slave. I use "c:\soft" folder as shared directory. Plugin aggregates artifacts to slaves "c:\soft" folder. Expected behaviour is aggregatting artifacts to masters "c:\soft" folder, I think. It is CopyArchivers behavior, at least. 1. With ArtifactDeployer Jenkins plugin, artifacts are deployed during the build job. This build is executed on a node (master or a slave). Therefore if the build is deployed on a slave, artifacts are deployed from the master and the information provided are relative from the slave machine. Do you want to add a new option to use information relative to master? 1. If build is running on slave, does ArtifactDeployer fail when the master is intentionally set to "0" executors? I do not want any job to run on master. I have a job starts failing after the change.ArtifactDeployer - Starting deployment from the post-action ... ArtifactDeployer - ERROR - Failed to deploy. Error on copying file. ArtifactDeployer - ERROR - Failed to copy /data/jenkins/workspace/PA-Master/pa-2013-07-16_00-31-03-NUM158.bin to /auto/mwc/analytics/pa-1_0/nightly-builds/pa-2013-07-16_00-31-03-NUM158.bin due to Input/output error Build step 'ArtifactDeployer - Deploy artifacts from workspace to remote directories' changed build result to FAILURE Build step 'ArtifactDeployer - Deploy artifacts from workspace to remote directories' marked build as failureThanks. -Indra 13. On the project and build pages, a list of URL(s) is displayed for each deployed artifact. From the source code: src/main/resources/org/jenkinsci/plugins/artifactdeployer/DeployedArtifacts/summary.jelly: <a href="deployedArtifacts/download/artifact.${artifact.id}/">${h.escape(artifact.remotePath)}</a> src/main/resources/org/jenkinsci/plugins/artifactdeployer/ArtifactDeployerProjectAction/jobMain.jelly: <a href="${lastSuccessfulNumber}/deployedArtifacts/download/artifact.${artifact.id}/">  Isn't the URL on the Jenkins master at .../deployedArtifacts/download/... always invalid? What is the purpose? It seems that users will click on this can get confused by the HTTP 404 error. Thanks! 1. Activity on JENKINS-15121 14. Has anyone used this plugin to upload their artifacts to a maven repository??? ... Currently my builds are NOT mavenized... If they have used this plugin to upload their artifacts to a maven repository, how did you do it? Thanks !!! 1. At the moment, ArtifactDeployer enables you to deploy your build artifacts to file remote directories. If your Maven repository is accessible from the file:// protocol, ArtifactDeployer can meet your needs. However, no Maven metadata are generated. For remote Maven repositories accessible though the HTTP protocol, ArtifactDeployer doesn't meet at the moment to the feature. 15. Just fyi that I entered a bug - JENKINS-17494 Copy Artifact fails when trying to copy artifact stored by ArtifactDeployer https://issues.jenkins-ci.org/browse/JENKINS-17494 1. Issue commented 16. Hi, Does this plugin copy the artifacts locally on to the build server or any remote server(not a node of the jenkins setup). This is how my configuration looks like but it copies the artifacts by creating a local folder inside jenkins home path(I have jenkins running on a solaris box): Files to deploy : build/.war* Remote Directory : \\<remote_server_ip\\c$\builds

This created a folder \\<remote_server_ip\\c$\builds\ on the jenkins solaris box home path and copied all the war files into it following the build which is something I wasn't expecting. Please not that my remove directory is on a windows server. Thanks 17. I have an issue when I try to add a "ArtifactoryDeployer" build step in a "Conditional Step (multiple)". When I save the modification, I have a java exception, see below. There is no issue when I add this "ArtifactoryDeployer" build step in a "Conditional Step (single)" ! Any Idea ?  javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder from {"":["15","0"],"runCondition":{"stapler-class":"org.jenkins_ci.plugins.run_condition.logic.And","conditions":[{"":"2","condition":{"stapler-class":"org.jenkins_ci.plugins.run_condition.core.BooleanCondition","token":"${ENV, var=\"GAME_MARKET_amazon\"}"}},{"":"2","condition":{"stapler-class":"org.jenkins_ci.plugins.run_condition.core.BooleanCondition","token":"${ENV, var=\"GAME_ENVIR_prod\"}"}}]},"runner":{"stapler-class":"org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail"},"conditionalbuilders":[{"command":"echo Hello","stapler-class":"hudson.tasks.BatchFile","kind":"hudson.tasks.BatchFile"},{"msBuildName":"MSBuild .Net 4.0","msBuildFile":"${WORKSPACE}/Test/Build/Test.sln","cmdLineArgs":"/p:Platform=Android /verbosity:detailed /p:Configuration=${CONFIGURATION}","buildVariablesAsProperties":false,"continueOnBuildFailure":false,"stapler-class":"hudson.plugins.msbuild.MsBuildBuilder","kind":"hudson.plugins.msbuild.MsBuildBuilder"},{"deployedArtifact":{"includes":"**/*","basedir":"","remote":"${BUILD_ID}","excludes":"","flatten":false,"failNoFilesDeploy":false,"deleteRemote":false,"deleteRemoteArtifacts":false},"deployEvenBuildFail":false,"stapler-class":"org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerPublisher","kind":"org.jenkinsci.plugins.artifactdeployer.ArtifactDeployerPublisher"}],"stapler-class":"org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder","kind":"org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder"} at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:719) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:583) at org.kohsuke.stapler.Stapler.service(Stapler.java:214) at javax.servlet.http.HttpServlet.service(HttpServlet.java:45) at winstone.ServletConfiguration.execute(ServletConfiguration.java:248) at winstone.RequestDispatcher.forward(RequestDispatcher.java:333) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179) at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 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:124) 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:174) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
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 winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

`
1. I'm sorry I don't know.
I suggest asking to the conditional step plugin. Maybe they have a suggestion

18. Good day,

I'm using the AD plugin to successfully deploy our artifcacts to a NAS drive no problem.  However, I've enabled the "Delete remote artifacts when the build is deleted" checkbox yet the remotes are not being deleted when the build is deleted.  It's a fairly simple test case having just configured Jenkins to only keep 3 builds (using Discard Old Builds).  I thought I had it in that the NAS share was not mounted to the same path on the Jenkins ci server as the nodes but that doesn't seem to be it.

I'm not even sure where to begin to look what may be happening here as there's nothing in the logs indicating it's even trying to remove the remotes:ArtifactDeployer - Starting deployment from the post-action ...
ArtifactDeployer - 225 file(s) have been copied from the '/var/lib/jenkins-devops-testing/workspace/My Test Project-trunk/test_project/dist' to '/var/lib/jenkins-devops-testing/Test_Releases/Jenkins_Test/Product_Family/test_project/trunk/Build-50'.
ArtifactDeployer - Stopping deployment from the post-action...

Any pointers for where to look would be appreciated.

Cheers

Dave

19. how about some real documentation about this plugin? I don't want to install it just to see it and to know if it fits my need...

20. Firstly, thank you for an excellent plugin! It is vital to my use of Jenkins at the moment!

I am seeing some problems with the URLs of the deployed artefacts and have create a simple project to re-create it.

It seems that when using multiple plugin "instances" in a project, with multiple artefact wildcards for each, the resulting URLs son't match the actual artifacts and some occur more then once. This may be because I am abusing the capacity of the plugin but I have about 500 files to deploy in multiple directories.

If I use the same strategy but limit myself to a single wildcard entry per plugin "instance" the problem goes away.

Here is my simple projct that recreates the problem. I have tried it with versions 0.32 and 0.31

config.xml

Here is the same functionnality but defined in a way that works:

config.xml

Thank you again for everything!

21. We rely on this plugin so thank you very much for your efforts. It hasn't worked for us for about a month or so of updates to Jenkins so we rolled back and are holding. Are you still working on this? I'd try to help, but I'm a .NET developer and don't know much about Java.

22. Thank you very much for the plug-in. It is indispensable.

This might be an unusual question. But I need to remove the deployed artifacts link from the Jenkins page or restrict access to the users ( basic idea is that not everybody that calls the build should be able to access the files deployed from the webpage ) . Preferably remove links completely. Any suggestions?

23. It looks like this plugin is no longer developed. Or am I wrong?

24. Is there a way to exclude files? I use ***.* to copy a list of dlls from the \bin folder, but now want to exclude some of them. For now, I have delete them after the copy.

25. This is a useful plugin but I cant find it under jenkins available plugins!

Is it removed from central plugin repository? If yes, is it possible to get .hpi file for this plugin?

26. This page list versions up to version 0.33, although version 1.2 has been released.
The security vulnerabilites prevent users to download this plugin, although they have been fixed in 1.2.

Please could you update related information or give the entry point to update this information ?
(I will publish a post on the developer list)

27. ### Problems to Deploy artifcat to Artifactory

Hi Friends!

I have a problem when i use the plug-in "Deploy artifact to Artifactory" ...

When i select repositories of my JFROG and check the "Deploy maven artifacts" option (inside of plugin), the path that uploaded is a/b/c/d/e/myapp.ear but i only want deploy "myapp.ear" some idea to resolve it?

aditionally, in my pom.xml i definied a.b.c.d as dependency and groupId tags, i need modify it to resolve?

Thanks!!!