What can this build do?

This Maven Alfresco build process allows you to :

  • develop and package
  • test and run (on different platforms)
  • document and release your Alfresco extension project (site and PDF documentation)
  • You can also depend on AMP files deployed on a Maven repository (either manually or using the Maven Alfresco AMP archetype), by adding the following dependency snippet to your Extension pom.xml:
       <dependency> 
         <groupId>your.company</groupId> 
         <artifactId>youramp</artifactId>
         <version>1.0-SNAPSHOT</version>
         <scope>runtime</scope>
         <type>amp</type> 
       </dependency>

    This operation will result in automated AMP unpacking in your Extension WAR file during the normal build process (e.g. mvn package).

Available maven profiles:

Follows a list of the accepted profiles for the Extension archetype created project:

  • -Pinitialize
    Drops/creates DB and removes the alf_data POM configured directory
  • -Prun
    Run Alfresco in an embedded Jetty
  • -Pjboss
    Run in a locally running Jboss configured from the POM
  • -Ptomcat
    Runs in a local/remote Tomcat configured from the POM
  • -Prestore (DEPRECATED)
    Bootstrap a full repo from 6 ACP files (pre 3.x, now full export is disabled)
  • -Penterprise (DEPRECATED)
    Pre 3.2 LDAP configuration support using ldap-autentication-context.xml and ldap-synchronization-contex.xml

Configuration:

The project created from the extension archetype is very flexible. It uses a configuration mechanism (pre 3.2) which sigles sources the all required properties in one single file (called application.properties) which is global to the whole Spring context. This works also against 3.2, but activities are ongoing to converge to a proper usage of the new alfresco-global.properties.

Properties are stored in the src/main/properties/<env> folders and env=local is considered by default. You can switch the environment you're building for (e.g. for a release) using the -Denv=yourEnv switch in the command line build.

Also a number of properties are also accepted via command line of your build to give more configurability (if you're using the env=local). Please check the pom.xml and README.txt generated project files for more detailed comments.