Create a Resource Bundle
You have resources such as JSON or YAML config files, Bash scripts, or other assets that you want to combine into a resource bundle that can be used by other Pants targets.
resources target that tells Pants which files to include in the resource bundle.
resources target definition must include a
name and a list of
sources, which is a simple list of file names. This would create a resource bundle with two files:
resources( name='config' sources=['server-config.yaml', 'logging-config.xml'], )
This would include a recursive glob of files to a resource bundle:
resources( name='templates', sources=['**/*.mustache'], )
This would include a mixture of globs, recursive globs, and specific files:
resources( name='all' sources=['*.json', 'templates/**/*', 'logback.xml'], )
You can also exclude files and globs by prefixing them with
resources( name='python-resources', sources=['**/*', '!**/*.pyc'], )
Once your resource bundle has been specified, you can depend on it from the target that consumes the resources:
java_library( name='server', sources=['*.java'], dependencies=[ 'src/resources:config', ] )
This dependency ensures that the files in the resource bundle will be present at runtime (e.g., for JVM binaries, they will be included on the runtime classpath).