Maven Calm

Preview:

DESCRIPTION

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/

Citation preview

ALM, the CALM wayA Calm approach to Enterprise software development

Wednesday, June 17, 2009

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

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

Why Maven

Concept of Lifecycle

Inheritance and property overriding

Widely spread

Wednesday, June 17, 2009

ALM + Maven = Calm

Contains process-oriented behaviors

Separation of Concerns

Just a Corporate POM (or its parent)...

... but OpenSource

Wednesday, June 17, 2009

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 SCMWednesday, June 17, 2009

Infrastructure Ready

http://juddsolutions.blogspot.com/2009/05/ultimate-enterprise-java-build-system.html

Wednesday, June 17, 2009

... and we’re not the only ones

http://juddsolutions.blogspot.com/2009/05/ultimate-enterprise-java-build-system.htmlWednesday, June 17, 2009

http://wiki.community.objectware.no/display/smidigtonull/Enterprise+Maven+Infrastructure

... and we’re not the only ones

Wednesday, June 17, 2009

http://weblogs.java.net/blog/johnsmart/archive/2009/05/javaone_getting.html

... and we’re not the only ones

Wednesday, June 17, 2009

http://sonar.codehaus.org/hudson-sonar-plugin-10-to-industrialize-the-ultimate-build-system/

... and we’re not the only ones

Wednesday, June 17, 2009

http://www.sonatype.com/people/2009/06/nexus-open-source-and-hudson-on-ec2/

... and we’re not the only ones

Wednesday, June 17, 2009

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

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

Recommended