##############  W O R K  I N  P R O G R E S S  ############## 

To generate the site for MINA Project change to the
master project's root directory and execute

	mvn site

The site will be generated at

	target/site

For deploying the site to the remote server you need to
configure the Apache Web Server access parameters
in your local m2 configuration file which is normally at

	$HOME/.m2/settings.xml

A typical settings file which contains only this
configuration would generally look as follows (for UNIX):

	<settings>
	  <servers>
	    <server>
	      <id>apache.websites</id>
	      <username>YourApacheUserName</username>
	      <privateKey>$HOME/.ssh/id_rsa</privateKey>
	      <directoryPermissions>775</directoryPermissions>
	      <filePermissions>664</filePermissions>
	    </server>
	  </servers>
	</settings>

To deploy the site to remote server execute

	mvn site-deploy
