Deploying Velocity Templates without a Restart
In a development instance, you can play with picking up velocity file changes without a restart.
- Change class.resource.loader.cache from true to false
- Uncomment (remove the # sign from) #velocimacro.library.autoreload=true
JIRA generates emails in reaction to events using a templating engine. The templating engine is Apache Jakarta's Velocity. This is a relatively easy to use templating language that can pull apart java objects in useful ways. The mails are generated inside JIRA by invoking Velocity with a set of objects of relevance to the event.
Email Template Locations
To customise email content, please follow this procedure.
- Open up your JIRA distribution, and navigate to the following paths:
- Under this directory there are three directories:
htmlsubdirectory contains the templates used to create emails in html, while the
textdirectory the plain text mail outs. The
subjectdirectory contains the templates used to generate the subject of the emails. The templates are named after the event that will trigger the email.
- Bring the template up in your favourite text editor. Referring to the JIRA template documentation (particularly Velocity Context for Email Templates) and Velocity Users Guide, make the customisations you want.
- Restart JIRA.
For new email templates:
- Create your new
mytemplate.vmfiles in the
subjectdirectories, based on the existing files in those directories
- Add the templates to
atlassian-jira/WEB-INF/classes/email-template-id-mappings.xmlto make them valid choices for when you are adding a new event.
Note that since JIRA 4.1 each new template has to have a corresponding file in the
The Issue object is passed into the vm templates. Notice some of it's implementation in
/includes/summary-topleft.vm. As an example, calling $issue.getProject() would allow you to determine the project an issue comes from, and even create logic to show different information for emails from different projects.
See also Adding Custom Fields to Email.