SCMWise.com

Maven


Definition

From the Home page on Apache:

"Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), it can manage a project's build, reporting and documentation from a central piece of information."

Not sure why so many of these tools go out of their way to be so ambiguous about what the tool specifically does, but...

Basically, this is a standard way to build a java based project.

It provides a clear definition of what makes up a project.

It also publishes the project information.

It shares JARs across several projects.

Maven Home


Objectives

  • Simplifying the build process
  • Provide uniform builds
  • Improved project information and reporting
  • Easy to follow best practices
  • Easy upgrade path



Benefits
  • Build Automation
  • Providing Build Best Practices
  • Provide Relevant Project Information
  • Enforces Technical Standards
  • Scalability


Benefits

This Jakarta project was created to simplify the build process of their Turbine project.

Most Jakarta projects were using their own ant build files and processes.

It can be used to build and deploy any java-based project.


Apache Mvn Help

Maven Help Screen


System Requirements

JDK 1.4 or above (this is to execute Apache-Maven - it still allows you to build against 1.3 and prior JDK's)
Memory No minimum requirement
Disk No minimum requirement. Approximately 100MB will be used for your local repository, however this will vary depending on usage and can be removed and redownloaded at any time.
Operating System No minimum requirement. On Windows, Windows NT and above or Cygwin is required for the startup scripts. Tested on Windows XP, Fedora Core and Mac OS X.


Apache Mvn Benefits

Simple project setup that follows best practices - get a new project or module started in seconds
Consistent usage across all projects means no ramp up time for new developers coming onto a project
Superior dependency management including automatic updating, dependency closures (also known as transitive dependencies)
Able to easily work with multiple projects at the same time
A large and growing repository of libraries and metadata to use out of the box, and arrangements in place with the largest Open Source projects for real-time availability of their latest releases
Extensible, with the ability to easily write plugins in Java or scripting languages
Instant access to new features with little or no extra configuration
Ant tasks for dependency management and deployment outside of Maven
Model based builds: Maven is able to build any number of projects into predefined output types such as a JAR, WAR, or distribution based on metadata about the project, without the need to do any scripting in most cases.
Coherent site of project information: Using the same metadata as for the build process, Maven is able to generate a web site or PDF including any documentation you care to add, and adds to that standard reports about the state of development of the project. Examples of this information can be seen at the bottom of the left-hand navigation of this site under the "Project Information" and "Project Reports" submenus.
Release management and distribution publication: Without much additional configuration, Maven will integrate with your source control system such as CVS and manage the release of a project based on a certain tag. It can also publish this to a distribution location for use by other projects. Maven is able to publish individual outputs such as a JAR, an archive including other dependencies and documentation, or as a source distribution.
Dependency management: Apache Mvn encourages the use of a central repository of JARs and other dependencies. Maven comes with a mechanism that your project's clients can use to download any JARs required for building your project from a central JAR repository much like Perl's CPAN. This allows users of Maven to reuse JARs across projects and encourages communication between projects to ensure that backward compatibility issues are dealt with. We are collaborating with the folks at Ibiblio who have graciously allowed the central repository to live on their servers.


Planned Environment

O/S Solaris 10
Server Sun T2000 4 cores, 8 threads per core(32 concurrent threads)
RAM 32GB
JDK 1.6



Build Automation

Build Automation is the key to implementing a successful Agile development methodology.

In its basic form, the "Build" is the conversion of source code into binaries.

Build Automation


Software Build Tool Reviews

Please Share your Software Build Tool Reviews and Experiences...

Software Build Tool Reviews

Software Build Tools

Software Build Tools is a collection of tools used to create automated software builds.

This list of tools is growing and the functionality of the tools is expanding.

These tools have come along way in standardizing and simplifying the SCM Engineer's life in regarding to the automation of the software build.


Software Build Best Practices

Following Software Build Best Practices helps ensure that your development environment is always in a state to build.

For more information about Software Build Best Practices


Software Configuration Management Tools Table of Contents

Software Configuration Management Tools Software Configuration Management Tools are the tools and utilities used in administering source code, building software, install packaging, defect tracking, change management and managing software configurations.

SCM Tools SCM Tools is a list of the more popularly used Software Configuration Management Tools. The plan is compile an exhaustive list of tools and rate them according to their usability.

SCM Tool Reviews SCM Tool Reviews are a place to read reviews of software configuration management tools. Share your experiences with SCM tools. These reviews can benefits others who are searching for information.

Software Build Tools Software Build Tools is a collection of tools used to create automated software builds. This list is growing and the functionality of the tools is expanding.

Software Build Tool Reviews Software Build Tool Reviews is a place to come read reviews of software build tools. If you script software build tools, please share your experience with others.

Software Installation Tools Software Installation Tools is a collection of Install Packaging tools. These tools are used in simplifying and automating the installation or deployment of the application.

Software Installation Tool Reviews Software Installation Tools is a collection of Install Packaging tools. These tools are used in simplifying and automating the installation or deployment of the application.

Software Tracking Tools Software Tracking Tools are the tools and utilities used in tracking software changes, defects and software development progress.

CruiseControl CruiseControl is an open source tool setup specifically to perform continuous integration software builds. This page is high level overview of CC and its functionality and benefits. Software build tools like CC are an integral part of your Software Configuration Management System.

CruiseControl.Net CruiseControl.Net is an open source tool that facilitates the integration of software builds. This page is an overview of the CC.Net Tool and Process.

InstallShield Installer InstallShield Installer simplifies the process of creating reliable Windows Installers, MSI, packages and InstallScript installers for Window systems. InstallShield is the defacto standard for MSI installations.

Maven Maven is a tool that can now be used for building and managing any Java-based project.

Source Code Evaluation Source Code Evaluation -- In SCM, one of the most commonly asked questions is what SCM source code tools should I use. The answer is, it depends on your evaluation criteria. There are so many variables and considerations that go into the selection process. Now, the evaluation may be slightly different depending on your software development team and management requirements.

Subversion Subversion is the fastest growing SCM Source Control Tool. The goal of the SVN project was to build a source control tool that fixed many CVS limitations.

Subversion Commands Subversion Commands is a list of useful SVN tips and tricks for administering and managing your Subversion repository and application source code.

Team Foundation Server Microsoft's Visual Studio Team System 2008 Team Foundation Server is an integrated collaboration tool server for Visual Studio Team System. It combines software build management, software development process model, team portal, version control, work item tracking, and business intelligence into a unified server. TFS allows better team collaboration in an effort to ensure better quality software.

TFS Commands TFS Commands is a list of useful Team Foundation Server tips and tricks for administering and managing your Team Foundation repository and source code.

TFS Licensing TFS licensing can be very confusing. Even though Microsoft has published much about this topic, many have unanswered questions. This page hopes to answer some of these questions.

Trac Commands Trac Commands - This page is a list of common Trac administration tasks and commands used to administer and support Trac databases.

VSS Commands VSS Commands - This page is a list of common VSS administration tasks and commands used to administer and support Visual SourceSafe, VSS History, VSS Admin Add.

Wise Installer The Wise Installer simplifies application and patch deployments through automation of software packages.


Software Build Table of Contents

Software Build Build automation is the process of combining all the steps necessary to compile the source code into build artifacts into a one step process. This can include many different types of tasks depending on the technologies involved.

Agile Continuous Integration Agile Continuous Integration naturally supports the Agile Development process of small and frequent releases. Continuous Integration, CI, is the process of building your application on every new source code check-in. Although, considered a relatively new idea, the concept behind CI has been around for as long as development teams have been writing code.

Automated Builds Automated Build Process - Automating your software build process is a fundamental step in maturing your software development process. The only way to accurately predict build results, ensure build reproducibility and guarantee minimal development down time due to build issues is to fully automate the build process.

Build Automation Build Automation is the key to implementing a successful Agile development methodology. In its basic form The Build is the conversion of source code into binaries. However, there is much more to building software than just compiling code.

Build Management Build Management is the process of assembling all the components of a software application into an installable software product. For development teams looking to increase efficiencies and improve quality of their software, one of the most important places focus is the software build process.

Continuous Integration Continuous Integration, CI, is the process of building your application on every new source code check in. Although, considered a relatively new idea, the concept behind CI has been around for as long as development teams have been writing code. CI is an integral part of Software Configuration Management, SCM.

CruiseControl CruiseControl is an open source tool setup specifically to perform continuous integration software builds. This page is high level overview of CC and its functionality and benefits. Software build tools like CC are an integral part of your Software Configuration Management System.

CruiseControl.Net CruiseControl.Net is an open source tool that facilitates the integration of software builds. This page is an overview of the CC.Net Tool and Process.

Maven Maven is a tool that can now be used for building and managing any Java-based project.

Software Build Best Practices Software Build Best Practices are the procedures and processes that ensure software build integrity, repeatability and reproducibility. Best Practices are practices and techniques that are the most effective way of ensuring repeatability of a process. Build Best Practices are an integral part of Software Configuration Management, SCM.



SCMWise Configuration Spec



© Copyright 2007 - 2017
Powered by Site Build It!
Page copy protected against web site content infringement by Copyscape SCMWise.com's Privacy Policy
ADD TO YOUR SOCIAL BOOKMARKS: add to BlinkBlink add to Del.icio.usDel.icio.us add to DiggDigg
add to FurlFurl add to GoogleGoogle add to SimpySimpy add to SpurlSpurl Bookmark at TechnoratiTechnorati add to YahooY! MyWeb