A Mule application is either a:
Zip file. Yes, that’s a regular archive with a 'zip' extension.
Unpacked version of the same zip (exploded app)
This deployment unit encapsulates everything an application would need to function, such as libraries, custom code, configuration, deployment descriptor and any environment properties accompanying the application. There is also a way to share libraries between applications via the domain deployment descriptor attribute, which provides for smaller application archives at the expense of a dependency on container being properly setup.
A Mule application has a structured layout under
Mule will support both packaged and exploded deployment.
1 2 3 4 5 6 / \- classes // application-specific expanded resources (e.g. logging configuration files, properties, etc |- lib // application-specific jars |- mule-config.xml // Main Mule configuration file, also monitored for changes |- mule-deploy.properties // Application deployment descriptor (optional) |- mule-app.properties // custom properties to be added to the registry instance used by the application (optional)