FitNesse Maven Classpath Plugin is a Maven2 plugin that collects the dependencies of the entire project, including its sub-modules. After resolving the artifacts, it generates the classpath and inserts it into the Fitnesse test suites, thus solving the problem of maintaining the correct classpath in FitNesse.
Assimilate is a Maven2 plugin that allows developers to import dependencies from other pre-built Maven projects without a formal parent-child hierarchy existing between the projects. There is no limit to the number of project dependencies. Maven 2.0.9's "import" scope acts not on managed dependencies, but on those declared in the dependency management section of the imported pom file. Assimilate, in contrast, is designed to act on managed dependencies of any prebuilt Maven project (stored in the local repository), as though they were declared in the local project's managed dependency section.
Launch4j is a cross-platform tool for wrapping Java applications distributed as jars in Windows native executables. The executable can be configured to search for a certain JRE version or use a bundled one, and it's possible to set runtime options, like the initial/max heap size. The wrapper also provides better user experience through an application icon, a native pre-JRE splash screen, and a Java download page in case the appropriate JRE cannot be found. The increase in size of the application is small.
bmake is a program designed to simplify the maintenance of other programs. Its input is a list of specifications as to the files upon which programs and other files depend. If no -f makefile makefile option is given, bmake will try to open 'makefile' and then 'Makefile' in order to find the specifications.
crumb is an experimental build-automation program to provide functionality similar to "make" but with a much better approach, where dependencies for all invocations are automatically detected, by using shared-library level hooks. The spawned processes are also paused if a missing dependency needs to be generated. Oddly, with parallelism, this means that the linker might run before the compiler, but it will get paused until the compiler is done generating the input that it needs. Another purpose of crumb is to provide users with absolutely minimal build description files. This means that the build description files need to be smaller than an equivalent shell script containing the commands that would have built the project directly.