Maven Calm is an early implementation of main ALM use cases on an Open Source and collaborative framework based on Apache Maven.
http://pillitu.wordpress.com/2009/06/26/maven-calm/
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Maven Calm
1. ALM, the CALM way
A Calm approach to Enterprise software development
Wednesday, June 17, 2009
2. What is ALM
Application lifecycle management (ALM) is
the marriage of business management to
software engineering made possible by tools
that facilitate and integrate requirements
management, architecture, coding, testing,
tracking, and release management.
http://en.wikipedia.org/wiki/Application_lifecycle_management
Wednesday, June 17, 2009
3. ALM Best Practices
Manage your Code Repository (SCM
checkout/tagging/checkin)
Manage your Artifact creation process
Manage Artifact versions
Deploy Artifacts
DTAP Street
Wednesday, June 17, 2009
4. Processes and Roles
the less processes, the better
the more automatized processes, the better
a process must be owned by someone
a process must be monitored
Wednesday, June 17, 2009
5. Why Maven
Concept of Lifecycle
Inheritance and property overriding
Widely spread
Wednesday, June 17, 2009
6. ALM + Maven = Calm
Contains process-oriented behaviors
Separation of Concerns
Just a Corporate POM (or its parent)...
... but OpenSource
Wednesday, June 17, 2009
7. Calm Features
Maven Enforcer Plugin (checks Maven and
JDK version)
Maven Site Plugin for documentation
Maven Cargo Plugin for remote WAR
deployment
Maven Deploy Plugin + Nexus as a central
Repository
Maven Selenium/Surefire Plugin for testing
Maven Release Plugin for SCM
Wednesday, June 17, 2009
8. Infrastructure Ready
http://juddsolutions.blogspot.com/2009/05/ultimate-enterprise-java-build-system.html
Wednesday, June 17, 2009
9. ... and we’re not the only
ones
http://juddsolutions.blogspot.com/2009/05/ultimate-enterprise-java-build-system.html
Wednesday, June 17, 2009
10. ... and we’re not the only
ones
http://wiki.community.objectware.no/display/smidigtonull/Enterprise+Maven+Infrastructure
Wednesday, June 17, 2009
11. ... and we’re not the only
ones
http://weblogs.java.net/blog/johnsmart/archive/2009/05/javaone_getting.html
Wednesday, June 17, 2009
12. ... and we’re not the only
ones
http://sonar.codehaus.org/hudson-sonar-plugin-10-to-industrialize-the-ultimate-build-system/
Wednesday, June 17, 2009
13. ... and we’re not the only
ones
http://www.sonatype.com/people/2009/06/nexus-open-source-and-hudson-on-ec2/
Wednesday, June 17, 2009
14. Give it a try!
<parent>
<groupId>com.sourcesense.maven</groupId>
<artifactId>maven-calm</artifactId>
<version>1.0-beta-5</version>
</parent>
...
<repositories>
...
<repository>
<id>sose-public</id>
<url>http://repository.sourcesense.com/nexus/content/groups/public</url>
</repository>
</repositories>
...
<scm>
<connection>${maven.release.connection}</connection>
<developerConnection>${maven.release.developerConnection}</
developerConnection>
<url>${maven.release.url}</url>
</scm>
Wednesday, June 17, 2009
15. Customize your
properties
<!-- The most common properties that you might want to override -->
<!-- Enforcer Defaults -->
<maven.version>2.0.6</maven.version>
<java.version>1.5.0</java.version>
<!-- Dev Environment Defaults -->
<java.compiler.version>1.5</java.compiler.version>
<application.properties.location>src/main/properties/${env}</application.properties.location>
<application.properties.filename>application.properties</application.properties.filename>
<eclipse.downloadSources>true</eclipse.downloadSources>
<env>local</env>
<!-- Maven Release Plugin Defaults -->
<maven.release.goals>install deploy</maven.release.goals>
<maven.release.scm.provider>svn</maven.release.scm.provider>
<maven.release.scm.url>http://my.code.repo</maven.release.scm.url>
<maven.release.multimodule>true</maven.release.multimodule>
<maven.release.arguments></maven.release.arguments>
<!-- Maven Deploy Plugin Defaults -->
<maven.deploy.repository.id>maven-repo</maven.deploy.repository.id>
<maven.deploy.repository.url>http://localhost/your/repo</maven.deploy.repository.url>
<!-- Maven Site Plugin Defaults -->
<maven.site.id>maven-site</maven.site.id>
<maven.site.url>scp://localhost/var/www/${project.build.finalName}</maven.site.url>
<!-- Selenium Defaults -->
<selenium.browser>*firefox</selenium.browser>
<selenium.server.port>4444</selenium.server.port>
<!-- Plugin Versions Defaults -->
<plugin.selenium.version>1.0-rc-2-SNAPSHOT</plugin.selenium.version>
<plugin.cargo.version>1.0.1-SNAPSHOT</plugin.cargo.version>
Wednesday, June 17, 2009
16. References
http://www.sourcesense.nl/process/alm.html
http://code.google.com/p/maven-calm/
http://maven-calm.googlecode.com/svn/trunk/pom.xml
http://maven-calm.googlecode.com/svn/trunk/README.txt
Wednesday, June 17, 2009