Tricentis Tosca 16.0 Released on Feb-2023 ----- UFT has been upgraded from UFT 15.0.1 to UFT One 15.0.2, Beginning at November 2020.

Monday, 1 March 2021

Maven

Maven is a project management and comprehension tool that provides developers a complete build lifecycle framework.

Apache Maven is a software project management and comprehension tool. Based on the concept of a Project Object Model(POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

Objectives : 

Maven's primary goal is to allow a developer to comprehend the  complete state of a development effort in the shortest period of time In order to attain this goal, Maven deals with several areas of concern:

1. Making the build process easy

2. Providing a uniform build system

3. Providing quality project information

4. Encouraging better development practices.

Features :

1. Simple Project setup that follows best practices - Get a new project or module started in seconds.

2. Consistent usage across all projects : Means no ramp up time for new developers coming onto a project.

3. Superior dependency management including automatic updating, dependency closures (also known as transitive dependencies).

4. Able to easily work with multiple projects at the same time.

5. 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.

6. Extensible, with the ability to easily write plugins in java or scripting languages

7. Instant access to new features with little or no extra configuration

8. Ant tasks for dependency management and deployment outside of Maven.

9. 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.

10. 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 we care to add, and adds to that standard reports about the state of development of the project.

11. Release Management and distribution Publication : Without much additional configuration, Maven will integrate with your source control system (such as subversion or GIT) 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.

12. Dependency management : Maven encourages the use of a central repository of JARs and other dependencies. Maven comes with a mechanism that our projects clients can use to download any JARs required for building our 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.

Lifecycle :

Following are the phases -

Validate - Validate the project is correct and all necessary information is available.

Compile - Compile the source code of the project.

Test - Test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed.

Package - Take the compiled code and package it in its distributable format, such as a JAR.

Integration-Test - Process and deploy the package if necessary into an environment where integration tests can be run.

Verify - Run any checks to verify the package is valid and meets quality criteria.

Install - Install the package into the local repository, for use as a dependency in other projects locally.

Deploy - Done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

What does the build tool -

  1. Generates source code (If the auto generated code is used)
  2. Generates documentation from source code
  3. Packages compiled code into a JAR or ZIP file
  4. Installs the packaged code in the local repository, server repository or central repository