As of CAS 3.1, CAS builds exclusively with the Maven 2 Build Management System. This system provides a common build and directory structure across all projects that use Maven 2 and defines common goals that can be applied to any project type (JAR, WAR, EAR, etc.).
Building CAS
In your CAS_HOME, you can type "mvn package install". This will create all of the jar and war files for the CAS modules. Alternatively, you can enter any of the CAS_HOME/{module} sub directories and execute "mvn package install" to generate just that particular JAR or WAR.
As compilation require a network connection, if you are behind a http proxy, you have to indicate some extra option to mvn command: "mvn -Dhttp.proxyHost=xxx -Dhttp.proxyPort=xxx package install"
Deploying CAS
If you've built CAS as above, you will find a WAR file in the cas-server-webapp folder that you can use to deploy CAS. That's the simple demo case.
Customizing and Deploying CAS
As in previous versions of CAS, there is the deployerConfigContext.xml in the cas-server-webapp/src/main/WEB-INF directory. You can use this to configure your Authentication Handlers. There is also a cas.properties file with some URLs for configuring and securing the Services Management Application. Dependencies are added to the web application by adding a new dependency to the Maven 2 POM file for the cas-server-webapp (this includes custom modules, or any of the ones that CAS provides). Under "Authentication", you'll find more details on configuring each of the Authentication Handlers.
Once you've configured CAS, you can run "mvn package" to generate the WAR file.
Maintaining local customizations using Maven 2
Deployers do concern about the management of local customizations, upon CAS 3.1.1, Maven 2 has been employed as the major management tool in the project. It is suggested Maven can also offer a help in maintaining local customizations. Here is a page for the details.