2018-04-23 00:14:23 +00:00
|
|
|
# Readme for hacking on the source
|
|
|
|
|
|
|
|
## Build systems
|
|
|
|
The build system of I2P today is a bit mixed.
|
|
|
|
In the old days, and at least for relasing we actually use
|
|
|
|
the old `ant` tool. For the new Browser Bundle launcher, as
|
|
|
|
well as the Mac OSX launcher the `sbt` tool from the Scala
|
|
|
|
world was used cause it gives some increadibly effictive plugins
|
|
|
|
and logic to build them while keeping a relation to the old build
|
|
|
|
system.
|
|
|
|
|
|
|
|
We also have Gradle partly implemented, much work, but not all. Meeh
|
|
|
|
which is writing this readme is guessing we'll end up with a combination
|
|
|
|
of Gradle and SBT in the end when we know what kind of structure we want.
|
|
|
|
|
|
|
|
|
|
|
|
## Browsing around the source code
|
|
|
|
|
|
|
|
If you're new at this, which we all was at one point, I'll have some tips.
|
|
|
|
|
2018-04-24 00:48:08 +00:00
|
|
|
* Check out our [DIRECTORIES.md](DIRECTORIES.md) to learn ore
|
2018-04-23 00:14:23 +00:00
|
|
|
about where you'll find I2P's different parts in the codebase.
|
|
|
|
|
|
|
|
* For me (Meeh), it worked well to run `find . -type f -name '*Runner.java'`
|
|
|
|
from the source tree root, and take a look at the files that get listed. A lot
|
|
|
|
of hints of how this is peaced together lies there.
|
|
|
|
|
|
|
|
|
|
|
|
## The .. Monotone part
|
|
|
|
|
2018-04-24 00:48:08 +00:00
|
|
|
Check out [MONOTONECHEATSHEET.md](MONOTONECHEATSHEET.md) file.
|
2018-04-23 00:14:23 +00:00
|
|
|
|
2018-04-23 00:26:53 +00:00
|
|
|
## SBT Behind proxy
|
|
|
|
|
|
|
|
Seems it's a hassle behind SOCKSv5. But for use of HTTP proxy to fetch
|
|
|
|
dependencies and such, please edit `export SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=myproxy-Dhttp.proxyPort=myport"`
|
2018-04-24 00:48:08 +00:00
|
|
|
to have correct values for your system, then execute it before you start SBT.
|