********************** * Welcome to easyant * ********************** Easyant is a toolbox focusing on easing project build processes. It's based on Apache Ant and Apache Ivy, and allows for maximum flexibily, improved integration in existing build systems and provides conventions and guidelines. Our goals are : * to simplify build process by providing a set of ready to use build scripts (or modules) to ease the implementation of build system. * to provide conventions and guidelines * to leverage your ant knowledge (no need to learn another language) * to remain adaptable : o what about conventions ? : Even if Easyant comes with a lot of conventions, we never lock you in. o what about modules ? : You can easily adapt it to your projects. The architecture of Easyant allows you to easily extends existing modules and to provide your own one. o what if you already have an existing project ? Since Easyant is fully based on top of ant, you can keep your existing project along with the "old school" ant scripts. This should ease the migration to Easyant. Currently Easyant provides module for : * java compilation * javadoc generation * scala compilation * scaladoc * unit tests (Junit / TestNG) * emma coverage * checkstyle * packaging jar / war application * dependency management (using Apache Ivy) * publication (using Apache Ivy) *************** * Source code * *************** Easyant is released under Apache License 2.0. Sources can be found here SVN Url : http://easyant.abrm.info/svn Login : anonymous pass: (empty) **************** * Google group * **************** A google group is accessible here http://groups.google.com/group/easyant *************************** * Additional informations * *************************** This proof of concept is based on the trunk version of Ivy (as of svn r619946) and a patched version of Ant based on trunk (svn r617540), patched with source:trunk/src/main/patches/ant-697121-easyant-patch.diff. You can find a list of ant modification here This proof of concept come with some simple examples, and is still far from providing all the features of a good build system. It's here to serve as a basis for discussion. To run the build of an example, you should first set up in your environment the EASYANT_HOME variable : * for windows users : set EASYANT_HOME=path\to\easyant * for unix users : export EASYANT_HOME=path/to/easyant Then go to the example directory, and run: * for windows users : %EASYANT_HOME%\bin\easyant -p * for unix users : $EASYANT_HOME/bin/easyant -p You may also add EASYANT_HOME to your path : * for windows users : set PATH=%EASYANT_HOME%\bin;%PATH% * for unix users : export PATH=$EASYANT_HOME/bin:$PATH Then you should see all the available targets, which include all build phases inspired by maven 2, and some additional targets contributed by some plugins. Main phases: Target Description compile compile the source code of the project generate-resources generate resources for inclusion in the package generate-sources generate any source code for inclusion in compilation integration-test process and deploy the package if necessary into an environment where integration tests can be run package take the compiled code and package it in its distributable format, such as a JAR. post-integration-test perform actions required after integration tests have been executed. This may including cleaning up the environment pre-integration-test perform actions required before integration tests are executed. This may involve things such as setting up the required environment prepare-package perform any operations necessary to prepare a package before the actual packaging. This often results in an unpacked, processed version of the package process-classes post-process the generated files from compilation, for example to do bytecode enhancement on Java classes process-resources copy and process the resources into the destination directory, ready for packaging process-sources process the source code, for example to filter any values provision supply provision required by this project publish-local publish the package into the local repository, for use as a dependency in other projects locally publish-shared done in an integration environment, copies the final package to the remote repository for sharing with other developers and projects release done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects report generate report test run tests using a suitable unit testing framework. These tests should not require the code be packaged or deployed test-compile compile the test source code into the test destination directory test-generate-resources create resources for testing test-generate-sources generate any test source code for inclusion in compilation test-process-resources copy and process the resources into the test destination directory test-process-sources process the test source code, for example to filter any values test-provision supply provision required to test this project validate validate the project is correct and all necessary information is available verify run any checks to verify the package is valid and meets quality criteria Default target: doit (Here we'd need to make the help more helpful, by classifying targets, or hiding some of them maybe with different levels of help see ticket:13) Then run: %EASYANT_HOME%\bin\easyant The example should be compiled, as well as unit tests, which should then be executed, and a jar should be produced in target/artifacts. To find more informations see doc.txt