16
ALM, the CALM way A Calm approach to Enterprise software development Wednesday, June 17, 2009

Maven Calm

Embed Size (px)

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

Page 1: Maven Calm

ALM, the CALM wayA Calm approach to Enterprise software development

Wednesday, June 17, 2009

Page 3: Maven Calm

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

Page 4: Maven Calm

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

Page 5: Maven Calm

Why Maven

Concept of Lifecycle

Inheritance and property overriding

Widely spread

Wednesday, June 17, 2009

Page 6: Maven Calm

ALM + Maven = Calm

Contains process-oriented behaviors

Separation of Concerns

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

... but OpenSource

Wednesday, June 17, 2009

Page 7: Maven Calm

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

Page 8: Maven Calm

Infrastructure Ready

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

Wednesday, June 17, 2009

Page 9: Maven Calm

... and we’re not the only ones

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

Page 10: Maven Calm

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

... and we’re not the only ones

Wednesday, June 17, 2009

Page 11: Maven Calm

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

... and we’re not the only ones

Wednesday, June 17, 2009

Page 12: Maven Calm

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

Page 13: Maven Calm

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

Page 14: Maven Calm

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

Page 15: Maven Calm

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