Maven - Maven Deployment Automation - maven tutorial




What is Deployment Automation in maven?

  • Automate the deployment process by combining. Maven, to build and release projects, SubVersion, source code repository, to manage source code, and Remote Repository Manager (Jfrog/Nexus) to manage project binaries.
  • learn maven tutorial - maven project - apache maven - project management tools - Apache Maven example programs

    learn maven tutorial - apache maven - maven project - apache maven project management tools - Apache Maven example programs

  • In project development, normally a deployment process consists of following steps
    • Check-in the code from all project in progress into the SVN or source code repository and tag it.
    • Download the complete source code from SVN.
    • Build the application.
    • Store the build output either WAR or EAR file to a common network location.
    • Get the file from network and deploy the file to the production site.
    • Updated the documentation with date and updated version number of the application.
maven tutorial tags : apache maven , maven repository , maven central

Problem Statement

  • There are normally multiple people involved in above mentioned deployment process.
  • One team may handles check-in of code, other may handle build and so on.
  • It is very likely that any step may get missed out due to manual efforts involved and owing to multi-team environment.
  • Example, older build may not be replaced on network machine and deployment team deployed the older build again.

Solution

  • Automate the deployment process by combining
    • Maven, to build and release projects,
    • SubVersion, source code repository, to manage source code,
    • and Remote Repository Manager (Jfrog/Nexus) to manage project binaries.

Update Project POM.xml

  • We'll be using Maven Release plug-in to create an automated release process.
  • For Example: bus-core-api project POM.xml

POM.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi="http://www.wikitechy.com/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>bus-core-api</groupId>
   <artifactId>bus-core-api</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging> 
   <scm>
      <url>http://www.svn.com</url>
      <connection>scm:svn:http://localhost:8080/svn/jrepo/trunk/
      Framework</connection>
      <developerConnection>scm:svn:${username}/${password}@localhost:8080:
      common_core_api:1101:code</developerConnection>
   </scm>
   <distributionManagement>
      <repository>
         <id>Core-API-Java-Release</id>
         <name>Release repository</name>
         <url>http://localhost:8081/nexus/content/repositories/
         Core-Api-Release</url>
      </repository>
   </distributionManagement>
   <build>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.0-beta-9</version>
            <configuration>
               <useReleaseProfile>false</useReleaseProfile>
               <goals>deploy</goals>
               <scmCommentPrefix>[bus-core-api-release-checkin]-
               </scmCommentPrefix>
            </configuration>
         </plugin>
      </plugins>
   </build>
</project>
  • In Pom.xml, following are the important elements we've used
Element Description
SCM Configures the SVN location from where Maven will check out the source code.
Repositories Location where built WAR/EAR/JAR or any other artifact will be stored after code build is successful.
Plugin maven-release-plugin is configured to automate the deployment process.

Maven Release Plug-in

  • The Maven does following useful tasks using maven-release-plugin.
mvn release:clean
  • It cleans the workspace in case the last release process was not successful.
mvn release:rollback
  • Rollback the changes done to workspace code and configuration in case the last release process was not successful.
mvn release:prepare
  • Performs multiple number of operations
    • Checks whether there are any uncommitted local changes or not
    • Ensures that there are no SNAPSHOT dependencies
    • Changes the version of the application and removes SNAPSHOT from the version to make release
    • Update pom files to SVN.
    • Run test cases
    • Commit the modified POM files
    • Tag the code in subversion
    • Increment the version number and append SNAPSHOT for future release
    • Commit the modified POM files to SVN.
mvn release:perform
  • Checks out the code using the previously defined tag and run the Maven deploy goal to deploy the war or built artifact to repository.
  • Let's open command console, go the C:\ > MVN >bus-core-api directory and execute the following mvn command.
C:\MVN\bus-core-api>mvn release:prepare
  • Maven will start building the project. Once build is successful run the following mvn command.
C:\MVN\bus-core-api>mvn release:perform
  • Once build is successful you can verify the uploaded JAR file in your repository.

Wikitechy provides an indepth knowledge on the below maven tutorial items such as maven download , maven install , maven goals , maven build , maven commands , maven plugin , maven search , maven eclipse , maven deploy , eclipse maven , maven junit , maven java , hibernate maven , maven project , java maven , maven version , maven proxy , maven 2 , maven pom , maven eclipse plugin , maven java version , maven properties , maven install windows , how to create maven project in eclipse , eclipse maven plugin , maven dependencies , what is maven in java , maven apache , maven project structure , how to install maven in eclipse

Related Searches to Maven Deployment Automation

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We don't have any banner, Flash, animation, obnoxious sound, or popup ad. We do not implement these annoying types of ads!

We need money to operate the site, and almost all of it comes from our online advertising.

Please add wikitechy.com to your ad blocking whitelist or disable your adblocking software.

×