blob: abb7223bc7459f7e19ce9b219dc1961442b55d47 [file] [log] [blame]
**********************
* 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.
************************
* How to run examples *
************************
The Easyant source has a few sample projects that demonstrate how Easyant may be used in a project. Check the 'example' directory for all such examples.
* standard-java-app use build-std-java build type.
* webapp-java use build-webapp-java build type and jetty-deploy plugin.
* standard-scala-app uses build-std-scala build type
* example-multimodule shows a multi-module project.
* std-java-with-documentation shows another project using build-std-java build type with documentation samples.
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:
clean delete any artifacts from previous builds
compile compile the source code of the project
documentation generate documentation
generate-local-version generate a local version number
generate-release-version generate a version number for a release
generate-resources generate resources for inclusion in the package
generate-shared-version generate a version number for shared publication
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
org.apache.easyant.plugins#phases-std.validate validate the project is correct and all necessary information is available
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
prepare-publish-local prepare a publish for a local repository
prepare-publish-shared prepare a publish for a shared repository (snapshot)
prepare-release prepare a release
process-classes post-process the generated files from compilation, for example to do bytecode enhancement on Java classes
process-documentation-resources copy and process the documentation resources into the destination directory
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 criteri
Default target: doit
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 check the online documentation (http://ant.apache.org/easyant/history/trunk/index.html) or download it through our website.
***************
* Source code *
***************
Easyant is released under Apache License 2.0.
Sources can be found here
Git URL : https://git-wip-us.apache.org/repos/asf/easyant-core.git
************
* Web site *
************
Check the website to get further information http://ant.apache.org/easyant/
**************************************
* IRC Channel (#easyant on freenode) *
**************************************
We've registered an IRC channel on the freenode network for informal easyant discussions, asking questions or just hanging out and "socializing".
The channel is #easyant on irc.freenode.net.
Drop by if you are interested in the development of easyant, have a quick question or just want to get to know the people developing and using it. If you're new to IRC, be sure to learn how to get answers. A free web irc client is available here http://www.mibbit.com/