Hosted by Three Crickets

Packaging and Bootstrapping
For the JVM

Please note that Sincerity is still under development and that this documentation is incomplete.

Sincerity logo: jackrabbit and flowers


Please also refer to the FAQ for Scripturian.

The wrong version of a dependency is being installed. Why, and how do I fix it?

First, diagnose what is going on by viewing the dependency tree, via either the "dependencies:dependencies" command or the GUI.
If the problem is with an explicit dependency that you added, it could be that it is also being included as an implicit dependency with different version restrictions, and Ivy has done its best to resolve the conflict within the restrictions. You can overcome Ivy's compromise by using the "--force" when adding the explicit dependency. For example:
sincerity add com.tanukisoftware wrapper-linux 3.5.20 --force
If the problem is with an implicit dependency, you can override the version by using the "dependencies:override" command. For example:
sincerity override com.tanukisoftware wrapper-linux 3.5.20
Another option is to use the "--only" switch when adding the explicit dependency that pulls in the wrong implicit dependency, and then explicitly adding the sub-dependencies in the versions you want. You can, in fact, only use "--only" for all your adds, making 100% sure that only explicit dependencies are used.

I'm getting "java.lang.OutOfMemoryError: PermGen space" exceptions!

This is likely because you are chaining several of Sincerity commands together while also using the "heavier" language engines (Jython, JRuby). The easy solution in most cases is simply separating your commands. For example, instead of this:
sincerity add rails : install : add django : install : start django
Run this:
sincerity add rails : install
sincerity add django : install
sincerity start django
If you're using the Oracle JVM, you can also increase the PermGen space by setting the JVM_SWITCHES environment variable before running Sincerity:
JVM_SWITCHES=-XX:MaxPermSize=128m sincerity ...
This problem should completely disappear in JVM 8, which removes the PermGen feature entirely.

How do I force the use of Rhino with JVM 8?

There is an environment variable for it:
SINCERITY_JAVASCRIPT=Rhino sincerity install
By default, Sincerity will prefer Nashorn, even if Rhino is also on the classpath.

The Sincerity Manual is provided for you under the terms of the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. The complete manual is available for download as a PDF.

Download manual as PDF Creative Commons License