Can I exclude certain files from an artifact directory?
Asked by Brent Villalobos:

We have some Bamboo plans that copy directories as artifacts. The copy pattern is "\*\*/test/output/\*\*". Sometimes, some really large core dump files make their way into those directories. It doesn't take too many builds to start running our bamboo server out of space because we're copying all those core files.

Is there a pattern I can use to copy everything in those directories except files that start with the string "core"?


Answers:
author: Ron Chan
body: Jamey,

You should just separate your artifacts (from the build side) into 3 parts deployments scripts, war file and properties file. Then from the deployment side, you can pick and choose which you want to package/deploy.

This would be the simplest solution. Why worry about the complexities of regex (though I'm not even sure it's possible to exclude artifacts).

Hope this helps!

Ron

comments: author: Jamey Holden
body: That makes sense, thank you. :)


author: Gretchen
body: Yes, or at least I think so based on this page: [](http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Fconcepts%2Fconcept-inclusion-exclusion-patterns.htm)[http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Fconcepts%2Fconcept-inclusion-exclusion-patterns.htm](http://help.eclipse.org/juno/index.jsp?topic=%252Forg.eclipse.jdt.doc.user%252Fconcepts%252Fconcept-inclusion-exclusion-patterns.htm)

which says in part (after declaring it's the same as the ANT patterns):

The inclusion and exclusion elements of the implicit PatternSet can be specified inside the directory-based task (or explicit fileset) via either:

* the attributes `includes` and `excludes`.
* nested elements `<include>` and `<exclude>`.
* external files specified with the attributes `includesfile` and `excludesfile`.
* external files specified with the nested elements `<includesfile>` and `<excludesfile>`.

The syntax you may have to fiddle with but it is likely excludes=\*\*core\*\* or excludes=\*core\* or something like that. Since we don't use the xml structure in the copy patterns. May need a comma like \*\*/test/output/\*\*, excludes=\*core\* or something like that.

comments: author: Jamey Holden
body: Do you have any more information on this? I am creating a deployment artifact which contains the deployment scripts, a .war and a properties file. I want to exclude this properties file from the artifact, because it contains properties which are specific to the build server (for example the location/credentials of our test database instance). The properties file will be overwritten anyway when the deployment is run against a different environment, but it would be nice to have a clean artifact to be completely sure. :)

**\[EDIT\]**To be specific I have tried:

* deployment/\*\*/\*, excludes=\*.properties
* deployment/\*\*/\* excludes=\*.properties
* deployment/\*\*/\*, excludes:\*.properties
* deployment/\*\*/\* excludes:\*.properties
* deployment/\*\*/\*, exclude=\*.properties
* deployment/\*\*/\* exclude=\*.properties
* deployment/\*\*/\*, exclude:\*.properties
* deployment/\*\*/\*, exclude:\*.properties

But all to no avail, I just get: "Unable to publish artifact \[DeploymentBuildArtifact\]". :(


author: qundg-deploy
body: did you find a way?