-
-
Notifications
You must be signed in to change notification settings - Fork 0
How to Build Falco from source
Compile Falco itself, run its tests and render its Javadoc. Needed only to work on Falco. Consuming the published artefacts needs none of this — that is How-to Add Falco to your build.
Before you start: Java 25, and OneLiteFeather Maven credentials. Falco compiles against Minestom
and the internal mycelium-bom, both served from an authenticated endpoint.
-
Export the credentials:
export ONELITEFEATHER_MAVEN_USERNAME=... export ONELITEFEATHER_MAVEN_PASSWORD=...
-
Build — this compiles, renders Javadoc and runs the tests:
./gradlew build
-
Render the Javadoc on its own, one tree per module under
falco-<module>/build/docs/javadoc/index.html:./gradlew javadoc
-
Build the benchmark jar. A build never runs the benchmarks:
./gradlew :falco-benchmarks:jmhJar
./gradlew build reports BUILD SUCCESSFUL and each library module has a jar under
falco-<module>/build/libs/.
A 401 during dependency resolution means the two environment variables from step 1 are unset or wrong. This is the failure that actually occurs; it is not a repository outage.
See also: Build Setup for what the build is made of · How-to Run the JMH benchmark suite to run what step 4 produced.
Every published table lives on Reference Measured results, which owns them; a correction is made
there and nowhere else. What the ± after a JMH mean covers is defined once, in
Explanation What a measurement here means.
Wiki home · Repository · README and quick start · API documentation · Issues · Licence: AGPL-3.0
Getting started
How-to guides
- How-to Add Falco to your build
- How-to Load an Anvil world
- How-to Compute light for a loaded world
- How-to Keep chunk light up to date automatically
- How-to Use FalcoInstance instead of InstanceContainer
- How-to Migrate a world from an older version
four more
Reference
six more
Background
- Explanation Choosing between Falco and the built-in loader
- Explanation Scope and non-goals
- Explanation When light computation actually runs
- Explanation What a measurement here means
nine more
- Explanation Choosing between FalcoInstance and InstanceContainer
- Explanation How the Anvil loader is built
- Explanation How the light engine works
- Explanation How the concurrency design works
- Explanation How world migration works
- Explanation The chunk version guard
- Explanation Why a second Anvil loader
- Explanation Why a custom light engine
- Explanation Why falco-instance exists
- Explanation Comparing the light engine with Minestoms
- Explanation What the benchmarks establish
Project record
Working on Falco