Building Soot from the Command Line (Recommended) - VictoryWangCN/soot GitHub Wiki

Note that unless you are directly working on the Soot source code (adding features, fixing bugs, etc.), you are recommended to use the nightly builds https://soot-build.cs.upb.de/nightly/

System Setup

Soot's nexus server https://soot-build.cs.uni-paderborn.de/nexus/repository/soot-snapshot/ is reachable via https using let's encrypt certificates. Some older java versions do not include them out-of-the-box.

Thus, we recommend using java >= 1.8.0_144.

Step 1: Download the Latest Soot Version

The first step is to download Soot latest develop branch.

git clone https://github.com/Sable/soot.git
git checkout develop

Step 2: Rename Settings file

Rename the file ant.settings.jenkins to ant.settings.

Step 3: Build Soot's Options

In order to (re-)build Soot's options run ant options.

Step 4: Build Singletons

In order to (re-)build Soot's singletons run ant singletons.

Step 3: Build Soot Jar (Excluding Dependencies)

In order to build a Soot jar containing Soot's core classes run mvn clean compile package. The resulting jar is saved as target/sootclasses-trunk.jar.

Alternative - Step 3: Build Soot Jar (Including Dependencies)

By default, maven does not include any dependencies in the resulting jar file target/sootclasses-trunk.jar but defines them in the file sootclasses-trunk.jar:META-INF/maven/pom.xml.

If you need a full soot jar including all dependencies run mvn assembly:single. The resulting jar file target/sootclasses-trunk-jar-with-dependencies.jar includes all dependencies.