Jerkar is a complete build system ala Ant, Maven, Gradle or Buildr but using pure Java to describe builds : no XML, no foreign language. Breaking a common belief, it makes proof that Java is perfectly suitable in this domain.
Jerkar is expected to have a very fast learning curve for Java developers. You can visit the following page in this order :
- http://jerkar.github.io/tell-me-more.html : introduction to Jerkar. Answer to the question : What Jerkar is exactly ?
- http://jerkar.github.io/tour.html : to give a concrete idea on how Jerkar is working
- http://jerkar.github.io/documentation/latest/getting_started.html : to get hand-on experience
- http://jerkar.github.io/documentation/latest/reference.html : to know the details about Jerkar behavior
- https://github.com/jerkar/jerkar-examples : Examples of project built with Jerkar.
Jerkar is made of following projects :
- core : complete Jerkar project but without embedding following plugins
- plugins-jacoco : a plugin to perform test coverage
- plugins-sonar : a plugin to perform sonar analysis
- distrib-all : the core distrib augmented with the above plugins
Jerkar builds itself. To get Jerkar full distrib built from the Java sources only, the simpler is to build it from your IDE.
- Import the 4 projects described above in Eclipse (that already holds .project and .classpath files)
- Create a Java Application run configuration (Run Configuration ... -> Java Application -> new)
- Make sure that the Runtime JRE is a JDK (6 or above)
- Choose
org.jerkar.distrib-all
as project - Choose
org.jerkar.tool.Main
as Main class
- Run it : It will launch a multi-project build. You will find result for the full distrib in org.jerkar.distrib-all/build/output directory
You can achieve the same using Intellij as Intellij module definitions (.iml) are stored in git. org.jerkar.distrib-all
contains the project definition (.idea folder).
First releases has been delivered. It contains all features a self respecting build tool must have : from compilation to publication features. Now we'll plan to deliver new releases at fast pace. You're welcome to push your expectation for next releases.
Jerkar welcomes contributors. As a new project there's plenty of free rooms to start : You can extends/debug the jerkar project itself but you van also write addin/plugin for integrate better Jerkar with your favorite technology. Don't be intimidated, it's relatively easy and you can provide great added value just by writing very few code. As an example, look at the Spring Boot addin. Also do not hesitate to contact contributors to discuss about what is best to start with.
If you contribute to Jerkar Core project, there's only 1 rule : try to mimic the current style :-). More concretely :
- Make a class public only when really needed. If a class is public, it should be prefixed with
Jk
(The goal is to not pollute auto-completion in IDE when Jerkar is on the build path). - Favor immutable objects.
- Embrace a fluent style API (so stay away from JavaBean coding conventions).
- Don't use 3rd party dependencies (Use or enrich JkUtilsXxxxx classes for commons).
- Make your code JDK6 complient (probably switch to JDK 7/8 soon).