Apache Maven - Project Management and Comprehension Tool

  •        434

Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.




Related Projects

gradle-tips - Gradle tips for all of us


Over last year or so I have started using Gradle as my primary build tool for JVM based projects. Before using Gradle I was an Apache Maven user. Gradle takes best from both Apache Maven and Apache Ant providing you best of both worlds. Gradle borrows flexibility from Ant and convention over configuration, dependency management and plugins from Maven. Gradle treats task as first class citizen just like Ant. A Gradle build has three distinct phases - initialization, configuration, and execution. The initialization phase determine which all projects will take part in the build process and create a Project instance for each of the project. During configuration phase, it execute build scripts of all the project that are taking part in build process. Finally, during the execution phase all the tasks configured during the configuration phase are executed.

maven - Mirror of Apache Maven

  •    Java

Maven is a software build management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.

Graddle - Build Process Automation

  •    Groovy

Gradle pushes declarative builds to the next level by providing declarative language elements that you can assemble as you like. Those elements also provide build-by-convention support for Java, Groovy, OSGi, Web and Scala projects. This declarative language is extensible, add yours or extend exiting one.

Bnd - Swiss army knife for OSGi. A tool to build OSGi bundles.

  •    Java

bnd is a swiss army knife for OSGi, it creates manifest headers for you based on analyzing the class code, it verifies your settings, it manages project dependencies, gives you quote of the day, diffs jars, and much more.

Apache Gump - Large scale continuous integration for various open source projects.

  •    Python

The Apache Gump continuous integration tool was the first one developed at the Apache Software Foundation. It is written in Python and fully supports Apache Ant, Apache Maven (1.x to 3.x) and other build tools. Gump is unique in that it builds and compiles software against the latest development versions of those projects. This allows Gump to detect potentially incompatible changes to that software just a few hours after those changes are checked into the version control system. Notifications are sent to the project team as soon as such a change is detected, referencing more detailed reports available online.

phing - PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.

  •    PHP

(PH)ing (I)s (N)ot (G)NU make; it's a PHP project build system or build tool based on Apache Ant. You can do anything with it that you could do with a traditional build system like GNU make, and its use of simple XML build files and extensible PHP "task" classes make it an easy-to-use and highly flexible build framework. Features include running PHPUnit tests (including test result and coverage reports), file transformations (e.g. token replacement, XSLT transformation, Smarty template transformations), file system operations, interactive build support, SQL execution, SVN/GIT operations, tools for creating PEAR packages, documentation generation (DocBlox, PhpDocumentor) and much, much more.

Apache Archiva - Repository Management Tool

  •    Java

Archiva is the perfect companion for build tools such as Maven, Continuum, and ANT. Archiva offers several capabilities, amongst which remote repository proxying, security access management, build artifact storage, delivery, browsing, indexing and usage reporting, extensible scanning functionality and many more!



NPanday is a project to integrate Apache Maven into .Net development environments, allowing you to use open source build infrastructure and Maven repositories. It includes both a Visual Studio add-in to use Maven, and a set of plugins for Maven that build .Net applications.

rebar - ATTENTION: Please find the canonical repository here:

  •    Erlang

rebar is an Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases. rebar is a self-contained Erlang script, so it's easy to distribute or even embed directly in a project. Where possible, rebar uses standard Erlang/OTP conventions for project structures, thus minimizing the amount of build configuration work. rebar also provides dependency management, enabling application writers to easily re-use common libraries from a variety of locations (git, hg, etc).

Kobalt - A Kotlin-based build system for the JVM

  •    Kotlin

Kobalt is a build system inspired by Gradle and Maven. It reuses the best concepts from these two successful and popular build systems while adding a few modern features of its own. Kobalt is written entirely in Kotlin and its build files are valid Kotlin files as well.

swift-llbuild - A low-level build system, used by Xcode 9 and the Swift Package Manager

  •    C++

A low-level build system. llbuild is a set of libraries for building build systems. Unlike most build system projects which focus on the syntax for describing the build, llbuild is designed around a reusable, flexible, and scalable general purpose build engine capable of solving many "build system"-like problems. The project also includes additional libraries on top of that engine which provide support for constructing bespoke build systems (like swift build) or for building from Ninja manifests.

Pants - Build System for Software Projects in a variety of Languages

  •    Python

Pants is a build system for software. It works particularly well for a source code workspace containing many distinct but interdependent pieces. It is optimizes for building multiple, dependent things from source, building code in a variety of languages, speed of build execution. A Pants build sees only the target it's building and the transitive dependencies of that target. This approach works well for a big repository containing several things.

loadrunner - Simple, flexible and sane JavaScript loader and build tool for browsers.

  •    Javascript

Loadrunner is a JavaScript dependency manager. Loadrunner started off as my science project script loader and module system but its turned into a generic dependency manager that you can build on to manage any type of asynchronous dependency from CSS templates to DOM events to cache loading. It does however include build in support for loading regular JavaScript files, AMD modules and its own, more elegant (IMHO) flavour of modules.

Apache Turbine - Servlet based framework that allows Java developers to quickly build web applicatio

  •    Java

Turbine is a servlet based framework that allows Java developers to quickly build web applications.

Continuum - Continuous Integration and Build Server

  •    Java

Apache Continuum is an enterprise-ready continuous integration server with features such as Automated builds, Release management, Role-based security, and Integration with popular build tools and Source control management systems. Whether you have a centralized build team or want to put control of releases in the hands of developers, Continuum can help you improve quality and maintain a consistent build environment.

godep - dependency tool for go

  •    Go

godep helps build packages reproducibly by fixing their dependencies.This tool assumes you are working in a standard Go workspace, as described in http://golang.org/doc/code.html. We expect godep to build on Go 1.4* or newer, but you can use it on any project that works with Go 1 or newer.

Buck - An Android build tool from Facebook

  •    Java

Buck is a build system for Android that encourages the creation of small, reusable modules consisting of code and resources. Because Android applications are predominantly written in Java, Buck also functions as a Java build system. Buck builds independent artifacts in parallel to take advantage of multiple cores. Further, it reduces incremental build times by keeping track of unchanged modules so that the minimal set of modules is rebuilt.

pybuilder - Continuous build tool for Python.

  •    Python

PyBuilder is a software build tool written in 100% pure Python, mainly targeting Python applications. PyBuilder is based on the concept of dependency based programming, but it also comes with a powerful plugin mechanism, allowing the construction of build life cycles similar to those known from other famous (Java) build tools.

heroku-buildpack-java - A Heroku buildpack for Java apps.

  •    Shell

This is the official Heroku buildpack for Java apps. It uses Maven 3.3.9 to build your application and OpenJDK 8 to run it. However, the JDK version can be configured as described below. The buildpack will detect your app as Java if it has a pom.xml file, or one of the other POM formats supports by the Maven Polyglot plugin, in its root directory. It will use Maven to execute the build defined by your pom.xml and download your dependencies. The .m2 folder (local maven repository) will be cached between builds for faster dependency resolution. However neither the mvn executable or the .m2 folder will be available in your slug at runtime.

Bazel - Google's own build tool

  •    Java

Bazel is a build tool that builds code quickly and reliably. It is used to build the majority of Google's software, and thus it has been designed to handle build problems present in Google's development environment. A comprehensive, built-in set of rules lets you build software for a wide variety of languages and platforms right out of the box.