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
- Download the Java Development Kit from the following link: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Install Maven on your machine
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.