maven calm

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

Upload: maurizio-pillitu

Post on 13-May-2015

2.203 views

Category:

Technology


3 download

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/

TRANSCRIPT

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