Skip to content
/ jcompilo Public

A pure Java 7+ build tool with advanced compiler features and strong opinions

Notifications You must be signed in to change notification settings

bodar/jcompilo

Repository files navigation

JCompilo

A pure Java 7 (Version 1) / Java 8 (Version 2) build tool with advanced compiler features including:

  • Extremely fast (faster than all other Java build tools by between 20%-80%)
  • Post processing of output bytecode
  • Zero copy Jar creation
  • Tail-recursion call optimisation (via TotallyLazy or system property "jcompilo.tailrec=your.annotation.Name")
  • Test support via JUnit
  • Dependency resolution via shavenmaven which gives us the following features
    • Pack200 support (10 x faster downloads)
    • Parallel downloads
    • No transitives
  • Supports 100% convention (no build file needed) or customisation in Java code

Standard Convention

The following shows the default folder structure for a JCompilo project. This will be very familiar to old school open source developers.

  • jcompilo.sh
  • Build.java (optional)
  • build (optional)
    • build.dependencies (optional) see ShavenMaven
    • runtime.dependencies (optional)
    • optional.dependencies (optional)
  • src
    • META-INF (optional)
      • MANIFEST.MF (optional)
    • com
      • example
        • HelloWorld.java
        • SomeResource.txt
  • test
    • com
      • example
        • HelloWorldTest.java

Latest Releases and Repo

http://repo.bodar.com/com/googlecode/jcompilo/jcompilo/

Future exploration

  • Run tests while compiling!
  • Even more compact console output
  • Remove JUnit/Hamcrest dependency
  • REPL
  • Use REPL as build server from IntelliJ