content_image/661846.jpg
A resources  directory allows the libraryResource  step to be used from an external library to load associated non-Groovy files. Currently this feature is not supported for internal libraries. 

Other directories under the root are reserved for future enhancements. 

## Global Shared Libraries 

There are several places where Shared Libraries can be defined, depending on the use-case. 

Manage Jenkins » Configure System » Global Pipeline Libraries  as many libraries as necessary can be configured. 

<img src='content_image/661846.jpg'>

Since these libraries will be globally usable, any Pipeline in the system can utilize functionality implemented in these libraries. 

These libraries are considered "trusted:" they can run any methods in Java, Groovy, Jenkins internal APIs, Jenkins plugins, or third-party libraries. This allows you to define libraries which encapsulate individually unsafe APIs in a higher-level wrapper safe for use from any Pipeline. Beware that anyone able to push commits to this SCM repository could obtain unlimited access to Jenkins . 

You need the Overall/RunScripts  permission to configure these libraries (normally this will be granted to Jenkins administrators). 

## Folder-level Shared Libraries 

Any Folder created can have Shared Libraries associated with it. This mechanism allows scoping of specific libraries to all the Pipelines inside of the folder or subfolder. 

Folder-based libraries are not considered "trusted:" they run in the Groovy sandbox just like typical Pipelines. 

## Automatic Shared Libraries 

Other plugins may add ways of defining libraries on the fly. For example, the plugin:github-branch- source[GitHub Branch Source] plugin provides a "GitHub Organization Folder" item which allows a script to use an untrusted library such as github.com/someorg/somerepo  without any additional configuration. In this case, the specified GitHub repository would be loaded, from the master branch, using an anonymous checkout. 

